将数据库数据拆分为类和子类

时间:2017-06-29 10:33:44

标签: asp.net-core-mvc entity-framework-core asp.net-core-1.1

现在说我在数据库中有一个表,包含以下字段:

属性

pipeline

现在我想使用EF Core从我的ASP .Net Core Web API中获取它。所以我为它创建了一个模型,但我想为地址创建一个单独的类:

id
num_bedrooms
num_bathrooms
num_garages
latitude
longitude
street_1
street_2
street_3
suburb
city
region
country

有可能做那样的事吗?当我尝试在我的API控制器中对数据库执行读取时,如下所示:

public class Address
{
    [Column("latitude")]
    public double Latitude { get; set; }

    [Column("longitude")]
    public double Longitude { get; set; }

    [Column("street_1")]
    public string Street1 { get; set; }

    [Column("street_2")]
    public string Street2 { get; set; }

    [Column("street_3")]
    public string Street3 { get; set; }

    [Column("suburb")]
    public string Suburb { get; set; }

    [Column("city")]
    public string City { get; set; }

    [Column("region")]
    public string Region { get; set; }

    [Column("country")]
    public string Country { get; set; }
}

public class Property
{
    [Column("num_bedrooms")]
    public int NumBedrooms { get; set; }

    [Column("num_bathrooms")]
    public int NumBathrooms { get; set; }

    [Column("num_garages")]
    public int NumGarages { get; set; }

    public Address StreetAddress { get; set; }
}

我收到此错误:

"实体类型'地址'需要定义主键。"

现在,我可以添加一个" Id"到Address类,但它不会映射到数据库中的任何内容......我这样做了吗?

1 个答案:

答案 0 :(得分:1)

您的班级地址没有主键。 你应该添加属性

[Key]
public int Id {get;set;}

或使用[Key]

将已存在的属性设置为主键

正如我在类Property中所看到的那样,您将获得相同的信息。