我有一个包含许多查找表的数据库表:OrderType ShippingType etc.我的订单表引用了这些表中的每一个:OrderOrderIDOrderTypeIDShippingTypeID我使用实体框架作为我的数据访问层.我有一个页面需要显示订单的信息....

我有一个包含许多查找表的数据库表:
OrderType
ShippingType
etc.
我的订单表引用了这些表中的每一个:
Order
OrderID
OrderTypeID
ShippingTypeID
我使用实体框架作为我的数据访问层.我有一个页面需要显示订单的信息.我正在努力找出使用这些实体的最佳/正确方法.
我的页面应该显示如下数据:
订单#1000000
运输类型:UPS
订单类型:在线
等等类型:等.
最好在数据库中创建一个视图,它带回我需要的数据,然后将其添加到我的实体模型中,并直接使用它,这样我就不必在查询中编写连接了吗?或者更好的是创建一个这样的中间类:
class OrderView
{
public int OrderNumber { get; set; }
public string OrderType { get; set; }
public string ShippingType { get; set; }
}
var order = from o in db.Orders
join ot in db.OrderTypes on o.OrderTypeID equals ot.OrderTypeID
join st in db.ShippingTypes on o.ShippingTypeID equals st.ShippingTypeID
select new OrderView
{
OrderNumber = o.OrderNumber,
ShippingType = st.Description,
OrderType = ot.Description
};
这里有什么更好的方法?
解决方法:
你本身不需要加入.您可以使用OrderType和ShippingType的导航属性,以便在不需要连接的情况下访问它们.你会有类似的东西:
var order = from o in db.Orders
select new OrderView
{
OrderNumber = o.OrderNumber,
ShippingType = o.ShippingType.Description,
OrderType = o.OrderType.Description
};
我认为在视图中这样做没有任何好处.
织梦狗教程
本文标题为:c# – 实体框架 – Linq to Entities中的数据库视图或连接


基础教程推荐
猜你喜欢
- 关于C#反射 你需要知道的 2023-02-25
- C# 使用Aspose.Cells 导出Excel的步骤及问题记录 2023-05-16
- Unity实现攻击范围检测并绘制检测区域 2023-02-16
- C#使用Aforge调用摄像头拍照的方法 2022-12-31
- Unity使用物理引擎实现多旋翼无人机的模拟飞行 2023-04-14
- c# 实现打印机状态查询与阻塞打印 2023-04-14
- C# 中的多态底层虚方法调用详情 2023-06-08
- 将.NET Core Web Api发布到Linux(CentOS 7 64) 2023-09-26
- ASP.NET Core 进程内与进程外的性能对比 2023-09-27
- C#中间语言及ILDASM工具用法 2023-05-16