【发布时间】:2012-11-22 10:00:06
【问题描述】:
在这样的数据模型中 (http://alanstorm.com/2009/img/magento-book/eav.png),我想使用 Linq to SQL 从 EAV_Attribute 中获取值。
假设 EAV_Attribute 仅存在于一个继承表(varchar、decimal、int 等)中,我如何在 linq 查询中获取它?
我知道我可以为此使用继承,但我想在 SQL 数据库端执行它...
考虑到元素有不同的类型,是否可以在 Linq 中做一种 Coalesce?
【问题讨论】:
-
假设您使用 C# 构建您的 LINQ to SQL 查询,您可以将空合并运算符 (??) 与外部连接一起使用。试一试!
-
我已经尝试过了,但我做不到,因为“Value”属性在每个表中都有不同的数据类型。
-
如果您使用的是实体框架,那么您使用的是 LINQ to Entities,而不是 LINQ to SQL(Microsoft 宣布终止使用的不同技术)。
-
另外,您所说的“我知道我可以使用继承”是什么意思?为什么您认为这会阻止查询被转换为 SQL?
标签: linq entity-framework linq-to-entities entity-attribute-value