2012-05-08 9 views
-1

コード:このlinqオブジェクトをasp.netオブジェクトに変換するにはどうすればいいですか?

が暗黙のうちにあなたが割り当てることができません 'mvcInsertLinqForms.tblSample'

+1

* 'ord = ob;'ステートメントは何を期待していますか?そして、なぜあなたはなぜ新しい 'tblSample'を作成していませんか? –

+0

割り当てord = obは、ドメインタイプの右側にタイプ "tblSample"の左側があります。割り当て可能なタイプですか? – rt2800

+0

@Jonおそらく明白なことですが、ステートメントはあるオブジェクトをもう一方のオブジェクトに変換する必要があります。そのような期待を理解し、自動的に実装することはあまりにも制限された言語/技術です。 –

答えて

0
[HttpPost] 
public ActionResult (Domain model) // or (FormCollection form), use form.get("phone") 
{ 
//--- 
return View(); 
} 
1

に型 'mvcInsertLinqForms.Models.Domain' を変換できませんように

Domain ob = new Domain(); 

[HttpPost] 
public ActionResult Create(Domain ob) 
{ 
    try 
    { 
     //// TODO: Add insert logic here 
     FirstTestDataContext db = new FirstTestDataContext(); 

     tblSample ord = new tblSample(); 
     ord = ob; 
     db.tblSamples.InsertOnSubmit(ord); 

     db.SubmitChanges(); 
     return RedirectToAction("Index"); 
    } 
    catch 
    { 
     return View(); 
    } 
} 

ここで私はエラーを取得しています同じタイプではないため、ordobとなります。ビューモデル(ob)をドメインモデル(tblSample)にマップしようとしているようです。あなたがあなたのビューモデルの間で前後にマッピングし、あなたを助けることができるようにAutoMapperなどのツールを使用することができ

[HttpPost] 
public ActionResult Create(Domain ob) 
{ 
    try 
    { 
     tblSample ord = new tblSample(); 
     // now map the domain model properties from the 
     // view model properties which is passed as action 
     // argument: 
     ord.Prop1 = ob.Prop1; 
     ord.Prop2 = ob.Prop2; 
     ... 

     FirstTestDataContext db = new FirstTestDataContext(); 
     db.tblSamples.InsertOnSubmit(ord); 
     db.SubmitChanges(); 
     return RedirectToAction("Index"); 
    } 
    catch 
    { 
     return View(); 
    } 
} 

を、手動でこのマッピングを行うことを避けるために:あなたは、ドメインモデルの対応するプロパティを設定することにより、これを行うことができますドメインモデル。

関連する問題