Tag: entity framework

EF Eager获取派生类

我正在使用EF6并试图获取对象的整个结构。 问题是我正在使用inheritance。 我们说我有这个课程。 的DbContext DbSet A { get; set; } 示例类 public class A { public string Id { get; set; } public IList Bases { get; set; } } public abstract class Base { public int Id { get; set; } public string Name { get; set; } } public abstract class Base1 : […]

我需要根据复选框列表选择特定列

我有一个复选框列表,用户可以选中或取消选中复选框。 根据选中的复选框,我用以逗号分隔的方式存储该值。 现在问题是基于我需要单独获取该特定列的选中复选框。 在“选择”** db.Tasks.OrderBy(t => t.CreatedDate).ToList() .Select(t => new { Id = t.Id, PriorityId = t.ProjectId, Priority = t.Priority, StatusId = t.StatusId, Status = t.Status, EstimatedTime = t.EstimatedTime, ActualTime = t.ActualTime, Subject = t.Subject, FileName = t.FileName, AssignedTo = t.AssignedTo, Project = t.Project }).ToList(); 如果我选中复选框列表ActualTime,Subject,它应该是 db.Tasks.OrderBy(t => t.CreatedDate).ToList() .Select(t => new { Id = […]

Linq的“IN”操作员

我试图在Linq中使用Entity Framework转换旧的原始Sql查询。 它使用IN运算符和一组项目。 查询是这样的: SELECT Members.Name FROM Members WHERE Members.ID IN ( SELECT DISTINCT ManufacturerID FROM Products WHERE Active = 1) ORDER BY Members.Name ASC 由于子查询的返回不是单个字符串而是字符串集合,因此我无法使用String.Contains()方法。 我想过做的事情: var activeProducts = ( from products in db.ProductSet where product.Active == true select product.ManufacturerID); 然后 var activeMembers = ( from member in db.ContactSet where member.ID.ToString().Contains(activeProducts)); 但它停止在包含说它有无效的参数…我不能选择activeProducts.ManufacturerID,因为很明显,proprety不存在,因为它返回一个IQueryable … 我在这里要做的就是返回一个至少有一个活跃产品的成员列表。 […]

entity framework中的LINQ预测的可重用计算(代码优先)

我的域模型有很多复杂的财务数据,这是对各种实体的多个属性进行相当复杂计算的结果。 我通常将这些作为[NotMapped]属性包含在相应的域模型中(我知道,我知道 – 关于将业务逻辑放在您的实体中存在很多争议 – 务实,它只适用于AutoMapper并且允许我定义可重用的DataAnnotations – a讨论这是好还是不是我的问题。 只要我想实现整个实体(以及任何其他依赖实体,通过.Include() LINQ调用或在实现后通过其他查询),然后在查询后将这些属性映射到视图模型,这样就可以正常工作。 当尝试通过投影到视图模型而不是实现整个实体来优化有问题的查询时,会出现问题。 考虑以下域模型(显然简化): public class Customer { public virtual ICollection Holdings { get; private set; } [NotMapped] public decimal AccountValue { get { return Holdings.Sum(x => x.Value); } } } public class Holding { public virtual Stock Stock { get; set; } public int Quantity { […]

entity framework:无法识别的元素“提供者”例外

当我在.NET 4.0中使用Entity Framework 5.0.0时,我在运行时得到一个无法识别的元素’providers’exception。 实际上,在.NET 4.0中,当我使用NuGet进行安装包时,会加载entity framework的4.4.0版本。 当我从资源管理器中检查文件的属性时,我可以看到: 这是我的配置文件 我感觉Entity Framework 4.4.0无法识别标签。 我可以删除或重命名该部分吗? 当我删除该部分时,我得到另一个例外: 底层提供程序在Open上失败 。

LINQ和SQL中看似等效的查询返回不同的结果

不知道为什么它被作为一个骗局联系起来。 问题是不同的。 答案是不同的。 不知道该改变什么。 如果有人看到我遗失的内容,请告诉我…… 我使用这两个查询获得了不同数量的结果。 在分析了几个小时之后,我需要放弃,承认我无法发现重要性的差异。 由于我的方法库被清空,我正在寻求帮助。 LINQ List result = context.Unos .Join(context.Duos, uno => uno.CommonId, duo => duo.CommonId, (uno, duo) => new { Uno = uno, Duo = duo }) .Where(item => item.Uno.Amount > 0 && item.Duo.Type == 2) .Select(item => item.Uno) .ToList(); SQL select * from Uno as u join Duo as […]

entity framework异步发出上下文或查询?

我的下面的查询有异步问题。 我有单例上下文,我试图执行以下查询: var query = await (from parent in Context.ParentTable join child in Context.ChildTable on parent.ID equals child.ID into allResult from ResultValue in allResult.DefaultIfEmpty() where ResultValue.TenantId == tenantId select new Result { Code = parent.Code, Type = parent.Type, ID = ResultValue == null ? 0 : ResultValue.Id }).ToListAsync(); 我的单例上下文如下所示: public class BaseRepository { private readonly […]

是否可以表达检查约束?

我正在使用Entity Framework 4.3进行代码优先开发,并且看起来似乎不可能通过属性注释或任何其他方式表达CHECK约束 。 我看到EF 5.0将添加对检查枚举的支持,但这并不是我在此之后所做的。 举一个简单的例子,我想validation所有Person对象的名字是“Bob”还是“Harry”,并且是5年,10年或30年。 public class Person { [Required] [Check(“Bob”, “Harry”)] //yes, this attribute is imaginary public string FirstName { get; set; } [Required, Check(5, 30, 50)] //check is still imaginary public int Age { get; set; } } 我可以运行一个alter脚本来添加这些约束,然后我可以滚动自己的check属性来执行validation,但有没有一种方法可以在Entity Framework中实际表达非枚举的CHECK约束?

Global.asax中DbContext的静态字段与控制器类中DbContext的实例字段的静态字段?

坦率地说,我是C#和Asp.net MVC的新手。 我也不知道asp.net Web应用程序如何在IIS和ASP.NET框架后面实际工作。 我对我必须在我的asp.net mvc应用程序中声明DbContext(或任何从DbContext派生的类)字段的决定感到困惑。 我有两个选择: 将该字段声明为global.asax的静态字段,以便所有控制器都可以使用它。 将该字段声明为每个控制器类中的实例字段。 你能解释哪一个是正确的吗? 确实需要更详细的解释。

如何在EntityFramework Codefirst中以编程方式使用迁移?

我正在使用EF Code First的项目。 我正在尝试使用迁移function。 我不想使用Package Console Manager。 如何以编程方式执行“添加 – 迁移”和“更新 – 数据库”? add-migration TestMigration01 -force update-database