在我的数据库中,我有以下表格:
st_dictionary
id
[other fields]
st_language
id
[other fields]
st_dictionary_language
dictionary_id
language_id
当我创建这些(和其他)表的实体模型时,实体框架看起来足够聪明,可以“凝聚”这些表格。将st_dictionary_language
交叉引用表转换为
public partial class st_dictionary
{
public virtual ICollection<st_language> st_language { get; set; }
[other members]
}
正如预期的那样,此属性使用通过交叉引用表链接的st_language
实体填充。
但是,当我希望将另一种语言引用到此st_dictionary
实体时,我遇到了一个问题:
daoDictionary.st_language.Add(new st_language { id = newLangID });
上面的代码抛出一个异常,其中列出了一系列验证错误,每个错误都解释了一些st_language
属性不能为空。这些非null属性都存在于st_language
数据库表中,而不存在于交叉引用表中。
那么如何在st_dictionary_language
表中添加新条目?
答案 0 :(得分:1)
您必须添加您希望交叉引用的实际实体,而不是传入新对象(在您的示例中,您只填充id
属性)。
看看你的例子,可能是这样的:
var daoLanguage = [retrieve the st_language entity via the Entity Framework];
daoDictionary.st_language.Add(daoLanguage);
祝你好运!