Tag: entity framework

以编程方式检索流畅配置而不实例化DbContext

我有一个DbContext派生类,其成员实体类是使用Fluent API配置的。 我想以编程方式检索这些配置和关系。 执行此操作的代码已经到位,我将其移植到T4模板以生成代码。 虽然大多数代码生成都使用reflection,但是流畅的配置需要实例化上下文类才能获得: ObjectContext的 EntityObjects EntityContainer相关 EntitySets 诸如此类 由于我们没有使用属性属性,因此reflection无济于事。 这在运行时可以正常工作,但在T4模板中实现DbContext会导致各种问题。 它有时会崩溃VS,产生奇怪的错误,产生循环依赖等。 如果我调试T4模板,它确实运行没有错误,但后台进程锁定包含DbContext类和实体的项目。 因此,每次实体发生变化时,我都必须重新启动VS三次,执行不同的步骤。 呸! 我想知道是否有办法检索实体元数据/配置而不实例化上下文类。 任何指导将不胜感激。

将带有join的SQL查询转换为lambda表达式

不知道如何将以下sql转换为lambda表达式。 我的数据库使用参照完整性和与Content_Training表相关的表内容,具有1对多的关系(1个内容可以包含许多content_trainings) select c.ContentId, c.Name, ct.TrainingTypeId from dbo.Content c left join dbo.Content_Training ct on c.ContentId = ct.ContentId where c.PublishDate is not null order by ct.TrainingTypeId, c.Name

使用Linq向实体插入现有行的副本

我正在使用entity framework。 我有一个表,其中包含自动生成的主键以及与其他主数据表的许多关键关系。 我们需要一个复制function,其中我们可以从表中选择任何现有行,并将其作为副本插入同一个表中。 我需要复制所有字段,但它应该是一个不同的记录,并且需要相同的过程/ LINQ。 请建议,我该怎么办。

EF6 – 使用基类属性在派生类中进行TPH外键映射

我将Entity Framework 6.0.2与现有数据库一起使用,其中标记存储在单个表中,如下所示: Id :int,主键 TagType :string,确定标签的类型,“usertag”或“movietag” ItemId :int,包含要引用的项的Id(用户ID或电影ID) 以下类描述了这种情况: public class User { public int Id { get; set; } } public class Movie { public int Id { get; set; } } public abstract class Tag { public int Id { get; set; } public int ItemId { get; set; } } public […]

entity framework核心中的ObjectStateManager.ObjectStateManagerChanged

我似乎无法在ef核心中找到ObjectStateManager.ObjectStateManagerChanged 。 这已被删除,如果是这样,有什么替代方案? 我想在实体加载到上下文时收到通知。

ObjectContext.ExecuteStoreCommand,如何在调用之间清除参数?

我使用不同的命令和不同的参数多次调用ObjectContext.ExecuteStoreCommand,尽管我对几个命令使用相同的参数列表(对象)。 我收到以下exception: System.ArgumentException: The SqlParameter is already contained by another SqlParameterCollection. 有没有办法清除调用之间的参数,就像我直接使用ADO.NET一样? 更新了代码示例: string sqlDeleteWebUserGreen = “delete WebUserGreen where WebUserId = @WebUserId”; string sqlDeleteWebUserBlue = “delete WebUserBlue where WebUserId = @WebUserId”; var argsDeleteWebUserXref = new DbParameter[] { new SqlParameter { ParameterName = “WebUserId”, Value = user.WebUserId } rowsAffectedDeleteWebUserXref += base.context.ExecuteStoreCommand(sqlDeleteWebUserGreen, argsDeleteWebUserXref); rowsAffectedDeleteWebUserXref += base.context.ExecuteStoreCommand(sqlDeleteWebUserBlue, argsDeleteWebUserXref); […]

将validation附加到MVC控制器/视图中使用的EF对象?

我们正在组合一个快速项目(CRUD表单)并决定跳过视图模型并直接在控制器和视图中使用EF实体。 由于我不习惯这种方法,我对处理validation感到困惑。 例如:DB字段的长度为25.如何在我的视图中将其转移(如果可以)到validation约束? 如果我使用的是中间模型,我会将属性附加到模型属性,它会起作用。 我如何直接使用EF对象? 谢谢。

通用存储库,CreateObjectSet ()方法

我试图实现一个通用的存储库,我现在就有这个: using System; using System.Collections.Generic; using System.Linq; using System.Data; using System.Data.Entity.Core.Objects; using Web_API.Models; namespace Web_API.DAL { class GenericRepository : IRepository where T : class { private ApplicationDbContext entities = null; IObjectSet _objectSet; public GenericRepository(ApplicationDbContext _entities) { entities = _entities; _objectSet = entities.CreateObjectSet(); } … 我在使用此方法调用时遇到问题: entities.CreateObjectSet(); 它应该没问题,但我得到这个错误: 我已经将System.Data.Entity添加到我的项目中,此时我不知道还能做什么。 我正在关注本教程http://www.codeproject.com/Articles/770156/Understanding-Repository-and-Unit-of-Work-Pattern 。 有谁知道如何解决这个问题?

从生成的表中检索数据时,对象名称“dbo.TableName”无效

我首先使用实体​​框架代码来创建我的表。 请注意 – 创建表而不是数据库,因为我正在处理托管环境,并且我没有允许创建数据库的用户。 提交数据库更新工作正常,但检索数据会产生exception: exception详细信息:System.Data.SqlClient.SqlException:无效的对象名称’dbo.EventHosts’。 我读过它发生了,因为我没有使用EF Code First来创建数据库。 那很好,但我如何优雅地解决这个问题呢? 所有生成的表都没有像dbo这样的前缀。 像这样的解决方案不起作用,并且根本不优雅: [Table(“EventHosts”, Schema = “”)]

如何在ASP.NET 5 MVC中没有模型的情况下从查询中访问数据

我试图使用EF7在控制器内执行查询并在表中显示数据。 这是我的模特: public class Resources { public int id { get; set; } public string name { get; set; } public string descr { get; set; } public string resourcePath { get; set; } public string method { get; set; } public string format { get; set; } public virtual ICollection Tags { get; set; […]