【发布时间】:2016-03-04 06:27:28
【问题描述】:
我正在尝试使用 EF 代码优先和这个简单的代码创建包含 2 个表(Districts 和 Databases)的新数据库:
using (var db = new FirebirdDBContext(_connectionString))
{
db.Database.CreateIfNotExists();
}
我的课:
public class District
{
[Key]
public int District_id { get; set; }
[Column(TypeName = "VARCHAR")]
[StringLength(50)]
public string District_name { get; set; }
[ForeignKey("DataBase")]
public int DataBase_id { get; set; }
public DataBase DataBase { get; set; }
}
public class DataBase
{
[Key]
public int DataBase_id { get; set; }
[Column(TypeName = "VARCHAR")]
[StringLength(50)]
public string DataBase_name { get; set; }
public ICollection<District> District { get; set; }
public DataBase()
{
District = new List<District>();
}
}
但不幸的是它抛出了一个错误:
指定的参数超出了有效值的范围。
参数名称:名称“FK_Districts_DataBases_DataBase_id”超过了 Firebird 对对象名称的 31 个字符限制。
我知道 Firebird 的 31 个字符限制,但是如果我先使用实体框架代码,我该如何解决这个问题?
【问题讨论】:
-
您可以在配置非常规外键名称部分配置外键名称 (msdn.microsoft.com/en-us/data/hh134698.aspx)
-
@kienct89 谢谢,我试试
标签: c# database entity-framework firebird