MVC3中的模型问题
我有一个关于 MVC3 的基本问题。我开始为我的项目编写模型。我知道模型在某种程度上是我的关系数据库层中的表。如何将类属性(表中的字段)指定为 FK。我知道 PK 的 [Key] 限定符。例如:
public class Class1
{
[Key]
public int MyID { get; set; }
public string myDes {get;set;}
}
在上面的例子中MyId是Class1中的PK。如何在另一个类中使用这个 MyId 并将其用作 FK。
编辑:这是正确的吗?
public class Class2
{ [钥匙] 公共 int SecondID { 获取;放; 。
[ForeignKey("MyId")]
public string MyId{ get; set; }
Class1
和 Class2 位于两个不同的 .cs 文件中
I have a basic question in MVC3. I am starting to write out Models for my project. I understand Models are in a way tables in my relational database layer. How do I specify a class attribute (field in a table) as a FK. I know the [Key] qualifier for PKs. For example :
public class Class1
{
[Key]
public int MyID { get; set; }
public string myDes {get;set;}
}
In the above example MyId is a PK in Class1. How do I use this MyId in a another class and use it as FK.
EDIT: Is this correct?
public class Class2
{
[Key]
public int SecondID { get; set; }
[ForeignKey("MyId")]
public string MyId{ get; set; }
}
Class1 and Class2 are in two different .cs files.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
存储关联记录的实例(或一对多或多对多关系的关联记录列表)。
这可能会根据您将数据持久保存到数据库的方式而改变,但通常这是面向对象的方法。
我使用 EF 4.1 Code First 执行此操作,生成的数据库包含关联表中的外键。
根据您的最新评论(关于ForeignKeyAttribute)进行编辑,以便我可以在答案中使用更好的代码格式:
根据
ForeignKeyAttribute
的MSDN条目(http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.foreignkeyattribute(v=vs.103).aspx#Y198),您传递的名称ForeignKeyAttribute
中是同一类上相应导航属性或外键属性的名称。例如:
ForeignKey
上述代码片段中的属性将ForeignObjectID
属性标识为ForeignObject
属性的外键。您的类中仍然需要外来对象的实例。您还可以在导航属性上使用
ForeignKey
属性,只需将外键属性的名称传递给该属性即可:Store an instance of the associated record (or a list of associated records for one-to-many or many-to-many relationships).
This may change based how you are persisting the data to the DB, but in general this is the OO way to do it.
I do this using EF 4.1 Code First, and the resulting DB contains a Foreign Key into the associated table.
Edit in response to your latest comment (regarding the ForeignKeyAttribute) so I can use the better code formatting in the answer:
According to the MSDN entry for the
ForeignKeyAttribute
(http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.foreignkeyattribute(v=vs.103).aspx#Y198), the name you pass into theForeignKeyAttribute
is the name of the corresponding navigation property or foreign key property on the same class.For example:
The
ForeignKey
attribute in the above code snippet identifies theForeignObjectID
property as a foreign key for theForeignObject
property. You will still need an instance of the foreign object in your class.You can also use the
ForeignKey
attribute on the navigation property, just pass in the name of the foreign key property to the attribute: