gpt4 book ai didi

c# - Linq to Sql 多一关系

转载 作者:太空宇宙 更新时间:2023-11-03 11:53:02 25 4
gpt4 key购买 nike

我在 SQL 设置中有 2 个 View :

  • 采购订单
  • PurchaseOrderLineItems

这些有许多别名的列(他们查看/加入的表没有合理命名......这是第 3 方产品)

我有 2 个类(下面简化)

    class PurchaseOrder
{
public string PoNumber { get; set; }
public string Vendor { get; set; }
public DateTime DateCreated { get; set; }

public IEnumerable<PurchaseOrderLineItems> LineItems { get; set; }
}

    class PurchaseOrderLineItems
{
public string PoNumber { get; set; }
public string Name { get; set; }
public double Price { get; set; }
}

我正在使用 Linq to Sql - 带有 XML 映射文件(在 sqlmetal.exe 的帮助下创建)

我想做的是使用 PurchaseOrderLineItem View 中的记录有效地填充 PurchaseOrder 中的 IEnumerable - 有效地连接表

我想使用 POCO 来做到这一点——而不必将 EntitySet<> 添加到我的类中,因为最终,我会将我的 ORM 更改为类似 nHibernate 的东西(我相信它具有 bag 属性......?)

目前,我有一个存储过程 - sp_getPurchaseOrderLineItems,它采用 PONumber,然后返回 PurchaseOrderLineItem 对象的列表,然后我将其添加到我的结果集中(这远非理想)

有什么办法可以做我需要的吗?所以基本上,对 PurchaseOrder 的查询会返回实例中已填充的 LineItems IEnumerable?

值得一提的是,这将永远是只读的,我们永远不会使用它插入/更新数据。

最佳答案

您可以扩展您的 PurchaseOrder 类来实现 OnLoadedMethod:

public partial class PurchaseOrder 
{
partial void OnLoaded()
{
LineItems = FunctionToCall_sp_getPurchaseOrderLineItems_AndBuildSet();
}
}

这至少会在您获得采购订单时自动获得行项目。

关于c# - Linq to Sql 多一关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1561224/

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