实体框架:没有主键

时间:2016-11-25 14:41:30

标签: c# .net sql-server entity-framework-6

即使有些人认为“如果它没有主键,但它不是表格”,有时您必须接受客户的要求。

我有一个没有主键的表,我首先使用现有数据库中的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的这种方式。

非常感谢, 托马什

0 个答案:

没有答案