5

Tôi đang sử dụng cơ sở dữ liệu Entity Framework Thứ nhất, nhưng tôi muốn để nhân rộng các hành vi sau đây từ các mô hình Mã đầu tiên:Entity Framework DB đầu tiên: Chuyển đổi Bảng Associative tới phần Định hướng Thuộc tính

Trong khung Entity Mã Trước tiên, bạn có thể làm một cái gì đó dọc theo các dòng này:

public class Thing 
{ 
    public int ID { get; set; } 
    ICollection<Stuff> Stuffs { get; set; } 
} 

public class Stuff 
{ 
    public int ID { get; set; } 
    ICollection<Thing> Things { get; set; } 
} 

Và cơ sở dữ liệu sẽ tạo và bảng Associative đại diện cho nhiều mối quan hệ.

Tôi đang sử dụng Cơ sở dữ liệu đầu tiên với cơ sở dữ liệu cũ. Tôi kéo vào các thực thể và nó bao gồm các bảng kết hợp đại diện cho một mối quan hệ nhiều-nhiều giữa hai bảng của chúng tôi.

Kể từ khi bảng kết được bao gồm như là một thực thể, các thuộc tính định hướng là như vậy:

public class Thing 
{ 
    public int ID { get; set; } 
    public ICollection<ThingStuff> ThingStuffs { get; set; } 
} 

public class ThingStuff 
{ 
    public int ThingID { get; set; } 
    public int StuffID { get; set; } 
    ICollection<Thing> Things { get; set; } 
    ICollection<Stuff> Stuffs { get; set; } 
} 

public class Stuff 
{ 
    public int ID { get; set; } 
    public ICollection<ThingStuff> ThingStuffs { get; set; } 
} 

Vì vậy, để điều hướng, tôi phải:

var stuff = Thing.ThingStuffs.Select(ts => ts.Stuff); 

Thay vì:

var stuff = Thing.Stuffs; 

Câu hỏi là:

Có cách nào để xóa đối tượng đại diện cho liên kết (ThingStuff) và nói với EntityFramework về bảng hiện có để tạo thuộc tính điều hướng nhiều người không?

+1

Tôi nghĩ bảng nối thực sự có nhiều thuộc tính hơn chỉ hai khóa ngoài, hoặc khóa chính riêng biệt, nếu không EF sẽ không kết hợp nó trong mô hình khái niệm. Có đúng không? –

+0

Ngoài những gì @GertArnold nói nếu một trong các khóa ngoại là vô hiệu thì cơ sở dữ liệu EF đầu tiên cũng bao gồm bảng được liên kết như một thực thể riêng biệt. –

Trả lời

0

Sẽ tốt hơn nếu bạn ánh xạ các phím tổng hợp của mình, như được nêu trong tài liệu hướng dẫn api thông thạo? http://msdn.microsoft.com/en-us/data/jj591617.aspx

+0

Theo như tôi biết, bạn không thể sử dụng API Mã thông thạo đầu tiên với Mô hình cơ sở dữ liệu đầu tiên – Michael