我目前正在使用Visual Studio 2015上的EF6代码优先。 我正在开发一个数据库,我希望将用户定义的类型用作主键。
这是我想要的一个简单例子:
public class ObjectIdType
{
public string id { get; set; }
}
这将是用户定义的类型。
public class ClasseProva
{
[Key][DatabaseGenerated(DatabaseGeneratedOption.None)]
public ObjectIdType Id { get; set; }
}
这将是我想将自定义类型用作PrimaryKey的实体。
当我这样做时,我尝试创建控制器时发生错误,错误是:属性类型不是有效的键类型。
我发现你只能使用标量类型作为PK,但我想知道我是否使我的ObjectIdType继承自String它会起作用吗? 我试着这样做(显然不起作用):
public class ObjectIdType : String
{
public string id { get; set; }
}
有没有办法将我的ObjectIdType定义为String的继承?或者有什么方法可以使用户定义的类型成为PK?
答案 0 :(得分:3)
有没有办法将我的ObjectIdType定义为String的继承?
没有。字符串是密封的。
或者有什么方法可以将用户定义的类型设为PK?
不是100%肯定,但我认为你做不到。