这是我数据库的一部分:
public abstract class LmData
{
public int Id { get; set; }
public LmDataType Type { get; set; }
}
[Table("ListLmDatas")]
public class ListLmData<T> : LmData where T : LmData
{
public virtual List<T> Value { get; set; }
public ListLmData()
{
Type = LmDataType.List;
}
}
如您所见,我正在尝试在我的数据库中使用通用模型(继承自LmData)。 我添加了这个并更新了数据库(EF似乎没有抱怨)。
另一个模型引用了泛型模型(ListLmData),如下所示引用(简化):
public class WpSite
{
public virtual ListLmData<StringLmData> Urls { get; set; }
}
但是运行以下代码:
WpSite wp = new WpSite();
wp.Urls = new ListLmData<StringLmData>();
wp.Urls.Add(new StringLmData());
context.WpSites.Add(wp);
context.SaveChanges();
导致添加WpSite,但.Urls属性为NULL。
此外,在检查我的数据库时,我发现似乎没有名为“ ListLmDatas ”的表格,这进一步让我感到困惑。
Entity Framework 6.1.1中是否不支持通用模型?
另一方面,是的,我没有显示“StringLmData”的模型定义,因为就我所见,它与问题无关。
答案 0 :(得分:0)
继承有效,泛型没有。