C# 如何在实体框架中使用类似字段的类

C# 如何在实体框架中使用类似字段的类,c#,.net,entity-framework,entity,C#,.net,Entity Framework,Entity,是否有一种方法可以使用类在实体框架中存储简单的值 我想创建一个类来存储一个简单的int32值,并将其命名为ID 并在实体框架中简单地使用它,但我希望将内部int32值保存在数据库中,而不是创建另一个表来存储ID类,并在这两个表(ID的用户和ID本身)之间创建关系 让我用密码解释一下: public class ID { public int InnerID { get; set; } } public class SomeClassName { public ID id { g

是否有一种方法可以使用类在实体框架中存储简单的值

我想创建一个类来存储一个简单的
int32
值,并将其命名为
ID

并在实体框架中简单地使用它,但我希望将内部
int32
值保存在数据库中,而不是创建另一个表来存储ID类,并在这两个表(ID的用户和ID本身)之间创建关系

让我用密码解释一下:

public class ID
{
    public int InnerID { get; set; }
}

public class SomeClassName
{
    public ID id { get; set; }
    public int Age { get; set; }
    //....
}
我希望结果如下:

-------------------
| InnerID  | Age  |
-------------------
| val1     | val1 | 
InnerID
创建为字段,而不是ID表的引用

这可能吗


非常感谢。

使用EF绝对可以做到这一点。在EF中,这些被称为复杂类型。但重要的是,复杂类型没有实体键,因此EF将知道如何将其映射到与“主机”类(例如SomeClassName)相同的表中的字段。以下是E中复杂文本类型的MSDN文档:

或者,对于这个特定场景,您可能希望将“ID”类设置为基类(抽象),然后SomeClassName可以从中驱动。我把它的名字改成了“身份”。我弄糊涂了

    public abstract class Identity {
         public int InnerID { get; set; } 
     }

     public class SomeClassName:Identity {
          public int Age { get; set; }
        //.... 
     }

有人帮帮我。。请……:)如果你是这个意思的话,你不能用类作为键。(除了
String
)谢谢你,但是,这不是我想要的,我想要标识本身作为代码中的字段,但是EF为我保存InnerID。你有什么想法吗?好吧,基类(第二个想法)不是路径。查看复杂类型文档(第一个想法),看看这是否适合您。