我有一个包含许多查找表的数据库表: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#使用Oracle.ManagedDataAccess.dll组件连接Oracle数据库 2023-06-09
- c# 数据标注与数据校验 2023-03-14
- C#使用DLLImport调用外部DLL的方法 2023-06-05
- C# 脚本引擎CS-Script的使用 2023-03-28
- 详解C#设置Excel数据自适应行高、列宽的2种情况 2023-01-22
- 关于C#线程的全面解析 2023-05-31
- 在 .NET Core 5 中集成 Create React app 2023-09-27
- C#异常处理知识汇总 2023-02-17
- Unity扩展Hierachry的右键菜单 2023-01-11
- VS2019配置OpenCV4.1.0详细教程与测试代码(推荐) 2023-02-09