我有以下表格(为了便于阅读而精简):
ID CallerName CallerTime
ID 类别名称
呼叫标识 类别ID
当我在实体框架中对这些进行建模时,省略了映射表“CallCategories”。我很难理解如何通过EF将记录添加到此表中。
我已经走到了这一步:
public void AddCategory(int callID, int categoryID)
{
using (var context = new CSMSEntities())
{
try
{
//Get the Call
var call = context.Calls.FirstOrDefault(x => x.callID == callID);
//Create a new Category
Category category = new Category();
category.categoryID = categoryID;
//Add the Category to the Call
call.Categories.Add(category);
context.SaveChanges();
}
catch (Exception ex)
{
throw ex;
}
}
}
我使用“添加”还是“附加”。而且,似乎我可能正在接近这个错误。我真的应该创建一个新类别吗?当我真的想在多对多映射表中添加记录时,似乎会在Category表中创建一个实际记录。
我似乎无法将我的大脑包裹在这些EF的东西中。 : - /
非常感谢任何帮助!
回应gnome ....
我想你在这里做点什么。虽然,我不会称之为“添加”(或者它是附加)吗?像:
//Get the Call
var call = context.Calls.FirstOrDefault(x => x.callID == callID);
//Find the Category and Add to the Call
Category category = context.Categories.FirstOrDefault(c => c.categoryID == categoryID);
call.Categories.Add(category);
context.SaveChanges();
答案 0 :(得分:2)
我认为需要添加类别模型,而不仅仅是添加id。尝试,
//Add the Category to the Call
call.Categories = context.Categories.FirstOrDefault(c => c.categoryId == categoryId);
context.SaveChanges();