Tag: dbcontext

如何使用DbContext和SetInitializer修复datetime2超出范围的转换错误?

我正在使用entity framework4.1中引入的DbContext和Code First API。 数据模型使用基本数据types,如string和DateTime 。 我在某些情况下使用的唯一数据注释是[Required] ,但这不在任何DateTime属性中。 例: public virtual DateTime Start { get; set; } DbContext子类也很简单,如下所示: public class EventsContext : DbContext { public DbSet<Event> Events { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Event>().ToTable("Events"); } } 初始化程序将模型中的date设置为今年或明年的明智值。 但是,当我运行初始化,我得到这个错误在context.SaveChanges() : 将datetime2数据types转换为date时间数据types会导致超出范围的值。 该语句已终止。 我不明白为什么会发生这种情况,因为一切都很简单。 我也不知道如何解决这个问题,因为没有edmx文件来编辑。 有任何想法吗?

如何使用entity framework只更新一个字段?

这是桌子 用户 UserId UserName Password EmailAddress 和代码.. public void ChangePassword(int userId, string password){ //code to update the password.. }

LINQ to Entities仅支持使用IEntity接口来投射EDM原语或枚举types

我有以下通用的扩展方法: public static T GetById<T>(this IQueryable<T> collection, Guid id) where T : IEntity { Expression<Func<T, bool>> predicate = e => e.Id == id; T entity; // Allow reporting more descriptive error messages. try { entity = collection.SingleOrDefault(predicate); } catch (Exception ex) { throw new InvalidOperationException(string.Format( "There was an error retrieving an {0} with id {1}. […]

如何刷新DbContext

我想刷新我的DbContext所有实体而不重新创build它,我尝试了以下,没有一个是合理的: var context = ((IObjectContextAdapter)myDbContext).ObjectContext; var refreshableObjects = (from entry in context.ObjectStateManager.GetObjectStateEntries( EntityState.Added | EntityState.Deleted | EntityState.Modified | EntityState.Unchanged) where entry.EntityKey != null select entry.Entity); context.Refresh(RefreshMode.StoreWins, refreshableObjects); //…………………………………………………………….. foreach (var entry in this.Orm.ChangeTracker.Entries()) { entry.State = EntityState.Unchanged; } this.Orm.ChangeTracker.DetectChanges(); 唯一一个刷新我的DbContext : foreach (var i in this.Orm.ChangeTracker.Entries()) i.Reload(); 但是太慢了。 你能帮我select正确的方法吗?

entity framework5实体的深度复制/克隆

我正在使用entity framework5( DBContext ),我试图find最佳的方法来深入复制实体(即复制实体和所有相关的对象),然后将新的实体保存在数据库中。 我该怎么做? 我已经研究过使用扩展方法,如CloneHelper但我不知道它是否适用于DBContext 。

entity framework:一个数据库,多个DbContexts。 这是一个坏主意吗?

我迄今为止的印象是,DbContext是为了代表你的数据库,因此,如果你的应用程序使用一个数据库,你只需要一个DbContext。 但是,有些同事想把function区分成单独的DbContext类。 我相信这是来自一个好地方 – 希望保持代码更清洁 – 但似乎是不稳定的。 我的直觉告诉我这是一个坏主意,但不幸的是我的直觉并不是devise决定的充分条件。 所以我正在寻找A)具体的例子,为什么这可能是一个坏主意,或者B)保证这一切都会运行得很好。

每个Web请求一个DbContext …为什么?

我一直在阅读大量文章,解释如何设置entity framework的DbContext以便只使用各种DI框架为每个HTTP Web请求创build和使用一个。 为什么这是一个好主意呢? 使用这种方法你有什么好处? 是否有某些情况下这是一个好主意? 有没有事情,你可以使用这种技术,你不能做每个存储库方法调用实例化DbContext ?