C#Entity Framework - 将值插入DatabaseGenerated列

时间:2017-10-18 14:07:25

标签: c# asp.net database entity-framework

我有一个使用两列(REQIDREQ_SUBID)的主键表,我有一个生成这些值的触发器,但前提是它们没有定义。在EF表示中,我使用的是DatabaseGenerated属性

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Column("REQID", Order = 0)]
public string RequestId { get; set; } 

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Column("REQ_SUBID", Order = 1)]
public int RequestSubId { get; set; }

但有时我想在代码中设置REQID值并将其保存到数据库中,但如果我尝试这样做,我会得到以下异常:

  

ReferentialConstraint中的依赖属性映射到存储生成的列。专栏:' REQID'。

这里有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

如果您需要自动生成可以放置在构造函数中的unic id,则不能在字符串属性上使用[DatabaseGenerated(DatabaseGeneratedOption.Identity)]

public class myEntity{
  MyEntity(){
   RequestId = Guid.NewGuid().ToString();
 }
}