2

我不确定如何搜索的基本 EF 问题:

将实体框架与生成的数据模型一起使用,我如何创建一个复合/自定义实体,该实体本质上将查找数据合并到主实体中,因此我可以在数据绑定中重用它(并且不必每次都进行查找即时)?

那么,在这个例子中,我可以有一个“SiteBU”实体,它有一个包含“BuinessUnit1”值的站点吗?

在此处输入图像描述

我知道我可以创建派生/继承的自定义“SiteBU”实体(见下图),但我不确定如何向其中添加“BusinessUnit1”值:

在此处输入图像描述

我也知道我可以使用自定义 LINQ 实体,但出于缓存目的,我希望拥有自己的“真实”实体而不是生成/匿名类型 - 例如

using (var context = new ReportingEntities())
            {
                result = new Collection<Site>(context.Sites
                                                .Include("BusinessUnit") // Pointless because it's cast back to a Site?!
                                                .Where(s => !s.IsDeleted)
                                                .OrderBy(s => s.Site1).ThenBy(s => s.BusinessUnit.BusinessUnit1)
                                                .ToList());
            }

这是我可以看到的唯一手动(基于代码)构造复合实体的方式(这里我手动创建了一个从“Site”继承的“SiteBUEntity”,并且在构造函数中具有额外的 BusinessUnit 属性)。不过看起来很费力。

using (var context = new ReportingEntities())
        {
            var siteBU = from s in context.Sites.Include("BusinessUnit")
                            where !s.IsDeleted
                            orderby s.Site1, s.BusinessUnit.BusinessUnit1
                            select new { Site = s, s.BusinessUnit.BusinessUnit1 };

            result = new Collection<SiteBUEntity>(siteBU.ToList().Select(s => new SiteBUEntity(s.Site, s.BusinessUnit1)).ToList());
        }

(对不起,如果我的术语有误 - 请纠正我)。

4

0 回答 0