Tag: ef code first

EF4 Code First:如何仅更新特定字段

如何仅更新实体上的某些字段? 我有一个像这样的用户实体: public class User { public string UserId { get; set; } public string PasswordHash { get; set; } public bool IsDisabled { get; set; } public DateTime AccessExpiryDate { get; set; } public bool MustChangePassword { get; set; } public DateTime DateCreated { get; set; } public DateTime LastActivity { get; set; } […]

加载要在WrapPanel中显示的大量图像

我正在使用Entity Framework Code First 我有这样的电影 : public class Movie { public byte[] Thumbnail { get; set; } public int MovieId { get; set; } } 电影的集合是这样的: public class NorthwindContext : DbContext { public DbSet Movies { get; set; } } 我有一个像这样的MovieViewModel : public class MovieViewModel { private readonly Movie _movie; public MovieViewModel(Movie movie) { _movieModel […]

EFCode First Property Null问题

我在asp.net mvc 3模型中使用EFCode First。 (Entity Framework 4.0和EFCode First 0.8)模型定义如下: public class User { [Key] public int Id { get; set; } public string Name { get; set; } public int WorkedYears { get; set; } } 当使用db.Users.Find(1) ,会抛出此错误: ‘User’上的’WorkedYears’属性无法设置为’null’值。 您必须将此属性设置为“Int32”类型的非null值。 注意:user.Id = 1存在于数据库中,记录的WorkedYears为NULL。 如果我在数据库中设置WorkedYears = 0,则错误将消失,如果我将属性定义为: public int? WorkedYears{get; set;} public int? WorkedYears{get; set;} public […]

如何在Entity Framework 6中禁用模型缓存(Code First方法)

在MSDN文档之后我们可以阅读: 然后缓存该上下文的模型,该模型适用于app域中上下文的所有其他实例。 可以通过在给定的ModelBuidler上设置ModelCaching属性来禁用此缓存 ,但请注意,这会严重降低性能。 问题是模型构建器不包含任何名为ModelCaching的属性。 如何禁用模型缓存(例如,在运行时更改模型配置)?

具有代码优先迁移的一个DB上的多个DbContexts

我偶然发现了这个问题所描述的问题 。 另外,我不想从数据库中删除__migrationHistory表。 我尝试使用建议的解决方案使用一个“超级”上下文,其中包含所有DbSet s并使用正常的上下文,但我收到了一个错误。 (“模型支持DbContext已更改”)如果您只是从SQL服务器中删除__migrationHistory表,这很容易避免,但正如我所说,我想保留历史记录。 我找到了一个简单易用的解决方案,请参阅下面的答案。

可以在EF代码中设置第一个迁移种子方法的断点吗?

我在我的entity framework6的代码优先迁移过程的Configure.cs中的Seed方法中遇到了问题。 我在Package Manager Console运行Update-Database -verbose命令,并尝试在Seed方法的c#代码中设置断点(在VS studio web express 2013中)。 但即使我把它放在方法的第一个语句中,它也没有被命中,虽然控制台显示running seed method (并且由于我的错误而导致其中断) 那么可以在Seed方法中以某种方式设置断点吗? 如果没有,调试该代码的最佳方法是什么?

使用ExpressionVisitor排除连接中的软删除记录

我有一个框架,在数据库中实现软删除(Nullable DateTime称为DeletedDate)。 我正在使用Repository来处理主要实体请求,如下所示: /// /// Returns a Linq Queryable instance of the entity collection. /// public IQueryable All { get { return Context.Set().Where(e => e.DeletedDate == null); } } 这很好用,但我遇到的问题是当你包含导航属性时,以及如何确保只查询活动记录。 有问题的存储库方法如下所示: /// /// Returns a Linq Queryable instance of the entity collection, allowing connected objects to be loaded. /// /// Connected objects to be included […]

entity framework代码第一个DateTime字段更新修改

我有以下实体: public class User { public int UserId { get; set; } public string UserName { get; set; } public string UserAddress { get; set; } public DateTime CreateDate { get; set; } public DateTime? UpdateDate { get; set; } } 如何使User实体的UpdateDate字段成为更新时的服务器DateTime ? 也就是说,每当数据库中的实体被修改时, UpdateDate字段就会更改为确切的日期和时间,以及是否要说UpdateDate = new DateTime(Datetime.Now.Ticks)

MVC3中相同类型的实体之间的多对多关系

我有一个ASP.NET MVC3应用程序,我使用Entity Framework 4.3 Code-First和Migrations。 我一直在尝试在相同类型的实体之间创建多对多关系,但是当我使用迁移构建迁移时,它会生成一对一的关系。 这个想法是一个用户应该能够跟随多个其他用户(想想Twitter)。 我的User模型看起来像这样: public class User { public int UserId { get; set; } public string Name { get; set; } public DateTime Registered { get; set; } … public virtual ICollection Follows { get; set; } } 当我构建添加的Follows属性时,我得到这样的迁移: public partial class FollowUser : DbMigration { public override void Up() […]

EF4.1代码优先:如何在依赖实体中禁用没有导航属性的关系的删除级联

假设我有这两个非常基本的实体: public class ParentEntity { public int Id; public virtual ICollection Childrens; } public class ChildEntity { public int Id; public int ParentEntityId; // Foreign Key public virtual ParentEntity parent; // [NOTWANTED] } 出于某些原因,我不希望ChildEntity将引用保留回其父级。 我只是希望它保留ParentEntity id,但仅此而已。 到目前为止,没问题,我只是删除[NOTWANTED]行,一切都按预期工作。 我的问题是:如何在特定情况下禁用级联删除? 如果我仍然拥有父导航属性,那将很容易: modelBuilder.Entity() .HasRequired(c => c.parent) .WithMany(p => p.Childrens) .WillCascadeOndelete(false) 但是如果没有导航属性,我根本不知道如何在删除时禁用级联(当然不是全局禁用它,也不是每个表禁用它,而只是为了关系)。 我现在所做的是将外键设置为可以为空的int,以便在删除时禁用级联,但这并不漂亮: public int? ParentEntityId; // Foreign Key […]