因此,对于我当前的应用程序,我需要使用返回单个对象的存储库来查询数据库。问题是信息被分成两个不同的表。我试图获取的对象是 Rule 对象。规则类由以下数据库实体组成:
class Rule
{
STRATRULEDEF ruleDefinition { get; set; }
List<STRATCODE> ruleCodeList { get; set; }
在我的存储库中,我使用以下查询来获取相关信息:
public void GetRule(int ruleKey)
{
Rule ruleQuery = from ruleDefinition in AREContext.STRATRULEDEFs
from ruleCodes in AREContext.STRATCODES
where ruleDefinition.STRATRULEKEY == ruleKey
&& ruleCodes.STRATRULEKEY == ruleKey
select new { ruleDefinition, ruleCodes };
所以我有两个问题。
1)如何将 ruleQuery 作为“Rule”对象返回,如果我将“var”更改为 rule,则会收到以下错误:
错误 10 无法将类型“System.Linq.IQueryable”隐式转换为“TestRules.Rule”。存在显式转换(您是否缺少演员表?)
我可以将 System.Linq.IQueryable 转换为 TestRules.Rule 吗?
2)我的表具有一对多的关系,因此查询应该返回一个 ruleDef 记录和多个 ruleCode 记录,但是目前我得到多个 ruleDef 记录,这些记录彼此重复。有任何想法吗?
谢谢
史蒂夫