我制作了一个.Net MVC项目。首先,我创建了一个包含所有模型和Db上下文的ClassLibrary,并使用此库来处理数据库。现在我想在另一个解决方案的另一个项目中使用这个类库。我引用了类库,但是这个新项目不能识别可空的外键(例如"字符串"或者nullable" Int")。运行时出现错误。
类示例
[Table("PORT_CALLS")]
public class PORT_CALLS
{
[Key]
public Int64 SID { get; set; }
[ForeignKey("SHIP_CALLS")]
public Int64 SHIP_CALL_SID { get; set; }
public virtual SHIP_CALLS SHIP_CALLS{ get; set; }
[ForeignKey("MNG_OPERATORS")]
public Int64 ? OPERATOR_SID { get; set; }
[JsonIgnore]
public virtual MNG_OPERATORS MNG_OPERATORS { get; set; }
public Decimal ? FORE_DRAUGHT { get; set; }
public Decimal ? MID_SHIP_DRAUGHT { get; set; }
public Decimal ? AFT_DRAUGHT { get; set; }
public Decimal ? AIR_DRAUGHT { get; set; }
public Int16 ? IS_TANKER { get; set; }
}
错误:实体类型没有定义键定义此EntityType的键(所有可以为空的外键都会出现此错误)
答案 0 :(得分:1)
您应该将[ForeignKey]
属性应用于SHIP_CALLS
属性,并使用提供外键的属性的名称:
[ForeignKey("SHIP_CALL_SID")]
public virtual SHIP_CALLS SHIP_CALLS{ get; set; }