我有一个包含许多查找表的数据库表: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-03-09
- 浅谈C#中ListView类的用法 2023-03-09
- C# 中使用Stopwatch计时器实现暂停计时继续计时功能 2023-05-25
- C#微信公众号开发之用户上下文WeixinContext和MessageContext 2023-06-15
- C#异步的世界(上) 2023-04-15
- C#实现线性查找算法 2023-06-28
- C#实现运行状态堆叠柱状图 2023-05-17
- C#中ToString数据类型格式大全(千分符) 2022-10-27
- Unity实现局域网聊天室功能 2023-05-06
- C#中利用Lotus notes公共邮箱发送邮件的方法 2022-12-06