2012-02-13 9 views
0

次のコードがありますが、メソッドを動作させるには、// .AddObject(Model);.SaveChanges();の前に//置き換える必要があります。これは作成クエリですが、これまではこれまでEntity Frameworkを使用していましたが、この場合はEFを使用していません。エンティティフレームワークを使用しないクエリの作成

[HttpPost] 
public ActionResult Registration(UserDetailModel Model) 
{ 
    if (ModelState.IsValid) 
    { 
     Model.UserNameFK = User.Identity.Name; 
     Model.CompanyName = "CompanyName"; 
     Model.IEMI = "IEMI"; 

     //.AddObject(Model); 
     //.SaveChanges(); 

     return RedirectToAction("Registration", "Home"); 
    } 

    return View(Model); 
} 

私は閉じていますか?

乾杯、

マイク。

答えて

0

Entity Frameworkが.NET用のObject Relational Mappingフレームワークであることをご存知でしょうか。

基本的には、データベースにマップするエンティティクラスを作成し、SQLを記述しないでCreate/Read/Update/Delete操作を簡単に実行できます。

エンティティフレームワークを使用していない場合は、NHinbernateのような別のORMを使用できます。

OR

あなたは書き込み/に/あなたのデータベースからデータを読み取るためにSQLでプレーンなADO.NETクラスを使用することができます。

例:あなたはあなたのSQL DBに、see the SQLCommand class(サポートされている他のDBの仕事への書き込みと同じ方法)

あなたが希望を書き込むためSystem.Data.SqlClient名前空間を使用することになりSQL Serverを使用している場合私はEntity Frameworkの多く、何度も使用している

CreateCommand(//just as an example you can use values from your model in sql 
"INSERT INTO Users(Name, CompnayName, IMEI,) VALUES (" 
     + Model.UserNameFK +", val2, val3,...)", 
"your connection string" 
); 

private static void CreateCommand(string queryString, 
    string connectionString) 
{ 
    using (SqlConnection connection = new SqlConnection(
       connectionString)) 
    { 
     SqlCommand command = new SqlCommand(queryString, connection); 
     command.Connection.Open(); 
     command.ExecuteNonQuery(); 
    } 
} 

See this for more documentation.

+0

:それ以下の機能で、このような何かを!それは遅いです、私はそれなしでこれをしようとしています。私はAccountModelを拡張することで、私のために構築されたものを使用しようとしていますが、AccountModelのために構築されたものは役に立たないことが分かります。私が欲しいのは、人々がログインして、私がそれらを追跡する方法です。 –

+0

あなたは 'UserDetailModel'を意味しますか?とにかく、そこからあなたのコントローラーにフォームからあなたの価値を得るために使用できるどのようなモデルであれ、あなたが望むものは何でもできます。私の答えで説明したように、エンティティ・フレームワークを使用するのではなく、データベースに対してSQLを手動で実行できます。私は自分の答えを更新しました。 – gideon