我有以下内容:
if (chemexist == false) // conditionally creating WtrChem record
{
WtrChem wc = new WtrChem();
wc.Contact = "John Smith";
..
wc.Phone = ("800-888-9988");
Db.WtrChem.Add(wc);
Db.SaveChanges();
}
WtrChemDetail psw = new WtrChemDetail (); // creating details record for WtrChem
psw.Comments = comment;
..
..
Db.WtrChemDetail.Add(psw);
Db.SaveChanges();
代码将首先创建主记录,然后创建详细记录。我的作品。我想知道在最佳实践方面是否有更有效的方法来完成我的工作。
答案 0 :(得分:0)
您可能希望对详细信息进行建模,其中详细信息是主设备上的属性。
或许这样的事情:
// Get the item. Include makes sure that you get the referenced detail as well.
WtrChem wc = Db.WtrChem.Include(x => x.Detail).SingleOrDefault();
if (wc == null) // creating WtrChem record
{
// If it wasn't found, create and add
wc = new WtrChem();
Db.WtrChem.Add(wc);
}
wc.Contact = "John Smith";
..
wc.Phone = ("800-888-9988");
// Deal with the
WtrChemDetail psw = new WtrChemDetail (); // creating details record for WtrChem
psw.Comments = comment;
wc.Detail = psw;
Db.SaveChanges();
如果使用此方法,将自动对主数据和详细信息之间的引用进行排序。
您需要添加using语句才能使.Include(..)
lambda正常工作:
using System.Data.Entity;