2016-04-25 67 views
1

我有這些表:如何創建兩個唯一/主鍵與實體框架

public partial class user 
{   
    public string Id { get; set; } 
    public string name{ get; set; } 
} 

public partial class book 
{   
    public string book-id{ get; set; } 
    public string book_name{ get; set; } 
} 

,我希望創建一個表來保存用戶(ID)並book(book_id)只能忽略重複。

例如:假設新的表名是Test

id ->1 
book_id->1 
id ->2 
book_id->2 

,如果我再次發送該值:

id ->1 
book_id->1 

它不應該將它們添加到數據庫中,那麼如何定義?新的類(Test)屬性/約束應該是什麼?並感謝

回答

1

只需創建一個新的類Test這樣的:

public class Test 
{ 
    [Key(Order=0)] 
    public int UserId { get; set; } 

    [Key(Order=1)] 
    public int BookId { get; set; } 

    public User User { get; set; } 

    public Book Book { get; set; } 
} 

通過這樣做,EF將創建一個數據庫中的命名Test表。該表不允許重複,因爲我們使用組合鍵(UserId,BookId)。

之後,您需要在BookUser中添加導航屬性public ICollection<Test> Tests { get; set; }

+0

非常感謝,非常有幫助.. –

相關問題