我有这些表格:
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)属性/约束应该是什么?谢谢
答案 0 :(得分: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)。
之后,您需要在public ICollection<Test> Tests { get; set; }
和Book
中添加导航属性User
。