我有以下代码优先模型:
public class TestContext : DbContext
{
public TestContext() : base("Data Source=Test.db") { }
public DbSet<Item> Items { get { return this.Set<Item>(); } }
}
public class Item
{
public Int32 Id { get; set; }
public virtual ICollection<SubItem1> SubItems1 { get; set; }
public virtual ICollection<SubItem2> SubItems2 { get; set; }
}
public class SubItem1
{
public Int32 Id { get; set; }
public Int32 ItemId { get; set; }
public Item Item { get; set; }
public String Test { get; set; }
}
public class SubItem2
{
public Int32 Id { get; set; }
public Int32 ItemId { get; set; }
public Item Item { get; set; }
public Int32 TestCode { get; set; }
}
像这样使用时:
using (var context = new TestContext())
{
context.Items.Add(new Item());
context.SaveChanges();
}
我遇到一个异常,显示“不支持默认值”。从此异常抛出DmlSqlGenerator.GenerateInsertSql
并传播出去。
最初,我使用更复杂的架构获得了例外,但是我可以将其归结为这一点。这是SQL CE的限制吗?如何解决这个问题,如何让一个主项具有两组依赖项,每组从属项都具有标量值?
CE和EF的已知问题,但这是指向该问题和解决方案的MSDN论坛的链接。
它的要旨不是拥有仅包含键的实体,它可以是唯一的主键,也可以是主键和外键。添加标量列可消除该异常。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句