0

現在說我有一個表在數據庫中,與這些領域:拆分數據庫的數據爲類和子類

性能

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

現在我想從我的ASP CRUD操作它。使用EF Core的Net Core Web 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; } 
} 

是否有可能做這樣的事情?當我嘗試在我的API控制器執行對數據庫的讀這樣的:

public DbSet<InspectionsData.Models.Property> Properties { get; set; } 

// GET: api/Properties 
Authorize] 
[HttpGet] 
public async Task<IActionResult> GetProperty() 
{ 
    return Ok(_context.Properties); 
} 

我得到這個錯誤:「實體類型‘地址’需要定義一個主鍵」

現在,我可以在Address類中添加一個「Id」,但它不會真正映射到數據庫中的任何東西......我是否正確地做了這件事?

+0

您需要爲該實體定義關鍵字,您可以通過兩種方式來實現:首先使用數據註釋,然後使用流暢的API –

回答

1

您的班級地址沒有主鍵。 您應該添加屬性

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

或設置已存在屬性與[關鍵]

主鍵正如我也看到了類物業,你將有相同的消息。