如何在计算机类的 ID 上创建外键到下面的 User
类中?
用户表:
[Table("User")]
class User{
[Key]
public int idUser;
public int idComputer; //ForeignKey
}
电脑 table :
[Table("Computer")]
class Computer{
[Key]
public int idComputer;
}
如何在这些类之间建立一对多关系和一对一关系?
最佳答案
要进行设置,以便一个用户拥有多台计算机,而一台计算机拥有一个用户,您可以这样做:
class User {
public int idUser {get;set;}
public virtual ICollection<Computer> Computers {get;set;}
}
class Computer {
public int idComputer {get;set;}
public int UserID {get;set;} // automatically detected as a ForeignKey since the format it [classname]ID
public virtual User User {get;set;}
}
要进行设置以使一台计算机拥有多个用户并且一个用户拥有一台计算机,您可以执行以下操作:
class User {
public int idUser {get;set;}
public int ComputerID {get;set;}
public virtual Computer Computer {get;set;}
}
class Computer {
public int idComputer {get;set;}
public virtual ICollection<User> Users {get;set;}
}
进行设置以使用户拥有一台计算机:
class User {
public int ID {get;set;}
public virtual Computer Computer {get;set;}
}
class Computer {
public int ID {get;set;}
[Required]
public int UserID {get;set;}
public virtual User User {get;set;}
}
[Required]
标记应消除有关一对一关系的任何错误
顺便说一句,EF Code First 的重点是让事情变得 super 简单、快速和容易,但是当您不使用它提供的某些功能时,它会大大削弱它,并且您必须执行更多手动操作工作,这可能会导致错误。
Here's a tutorial on how to do code-first. I recommend you read up on it.
好的,我重新阅读了您原来的问题。在相同的两个类之间不能同时拥有两者(一对一和一对多),您可以拥有一对一(即,一个用户有一台计算机,一台计算机有一个用户)或一对多(即,一个用户有许多计算机,而一台计算机有一个用户,或者一台计算机有许多用户,而一个用户有一台计算机。)这是一种或另一种,而不是两者兼而有之。您认为这是可能的事实强化了我的说法,即您确实需要阅读该教程或阅读简单的关系数据库结构
关于c# - 首先使用 ASP.NET MVC 4 迁移代码的foreignkey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23062717/