gpt4 book ai didi

asp.net - 实际上如何在 Entity Framework 4 Code-First CTP 5 中执行关系?

转载 作者:行者123 更新时间:2023-12-02 12:07:18 25 4
gpt4 key购买 nike

我想要一个简短的示例来说明如何在 Entity Framework 4 Code-First CTP 5 中实际执行关系?

希望有一个此类关系的例子:

* one-to-many
* many-to-many

非常感谢!

最佳答案

一对一

public class One
{
public int Id {get;set;}
public virtual Two RelationTwo {get;set;}
}

public class Two
{
public int Id {get;set;}
public virtual One RelationOne {get;set;}
}

需要注意的是,它必须是虚拟的

一对多

public class One
{
public int Id {get;set;}
public virtual ICollection<Two> RelationTwo {get;set;}
}

public class Two
{
public int Id {get;set;}
public virtual One RelationOne {get;set;}
}

多对多

public class One
{
public int Id {get;set;}
public virtual ICollection<Two> RelationTwo {get;set;}
}

public class Two
{
public int Id {get;set;}
public virtual ICollection<One> RelationOne {get;set;}
}

注意它需要是 ICollection

以下链接可能有帮助,clickclick

希望这有帮助。

编辑

更新为包括一对多。

编辑#2

更新为包括执行评论所要求的发票<->产品场景的可能性。

注意:这尚未经过测试,但应该会让您朝着正确的方向

public class Invoice
{
public int Id {get;set;}
//.. etc. other details on invoice, linking to shipping address etc.

public virtual ICollection<InvoiceProduct> Items {get;set;}
}

public class InvoiceProduct
{
public int Id {get;set;}
public int Quantity {get;set;}
public decimal Price {get;set;} // possibly calculated
//.. other details such as discounts maybe

public virtual Product Product {get;set;}
public virtual Invoice Order {get;set;} // maybe but not required
}

public class Product
{
public int Id {get;set;}
//.. other details about product
}

使用此功能,您可以遍历发票上的所有项目,然后 foreach 能够显示有关每个项目的发票详细信息以及产品本身的描述。

关于asp.net - 实际上如何在 Entity Framework 4 Code-First CTP 5 中执行关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4735981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com