即使有些人认为“如果它没有主键,但它不是表格”,有时您必须接受客户的要求。
我有一个没有主键的表,我首先使用现有数据库中的Entity framework Code来访问数据。实体框架生成了一个模型,并将[Key]和[Column]注释设置为所有NOT NULL列。这是一个简化的情况,有3个强制(NOT NULL)和一个可选(NULL)列:
[Key]
[Column(Order = 0)]
public int Manadatory1 { get; set; }
public string Optional { get; set; }
[Key]
[Column(Order = 1)]
public short Manadatory2 { get; set; }
[Key]
[Column(Order = 2)]
public string Manadatory3 { get; set; }
当我在表中有两行时,“Optional”列中唯一的区别是,Entity框架为两者返回相同的值,因为它认为它们是1,因为[Key]值相等
在没有更改数据库中的任何内容的情况下,我无法找到任何解决方案。我尝试更改模型的配置并将可选列设置为键,但不允许在键中使用NULL。
在没有对数据库进行任何更改的情况下,实体框架中是否存在针对此类问题的任何解决方案?
修改 StackOverflow中有一些类似的问题,但是更改数据模型存在一个被接受的问题。另一种解决方案是不使用实体框架。这个问题的目的是找出是否存在使用EF的这种方式。
非常感谢, 托马什