标签: ef-code-first

StringLength vs MaxLength将ASP.NET MVC与Entity Framework EF Code First相关联

行为[MaxLength][StringLength]属性有什么区别?

据我所知(除了[MaxLength]可以验证数组的最大长度)这些是相同的,有点多余?

ef-code-first entity-framework-4.1 asp.net-mvc-3

144
推荐指数
6
解决办法
10万
查看次数

EF Code First"无效的列名'Discriminator'"但没有继承

我的数据库中有一个名为SEntries的表(参见下面的CREATE TABLE语句).它有一个主键,几个外键,没有什么特别之处.我的数据库中有许多类似于那个表,但由于某种原因,该表最终在EF代理类上有一个"Discriminator"列.

这是在C#中声明类的方式:

public class SEntry
{
    public long SEntryId { get; set; }

    public long OriginatorId { get; set; }
    public DateTime DatePosted { get; set; }
    public string Message { get; set; }
    public byte DataEntrySource { get; set; }
    public string SourceLink { get; set; }
    public int SourceAppId { get; set; }
    public int? LocationId { get; set; }
    public long? ActivityId { get; set; }
    public short OriginatorObjectTypeId { get; set; }
}

public class …
Run Code Online (Sandbox Code Playgroud)

entity-framework ef-code-first

144
推荐指数
5
解决办法
10万
查看次数

如何在Entity Framework Code First中分离对象?

没有Detach(object entity)DbContext.

我是否能够首先在EF代码上分离对象?

entity-framework ef-code-first entity-framework-4.1

136
推荐指数
3
解决办法
9万
查看次数

实体类型<type>不是当前上下文的模型的一部分

我正在进入实体框架,但我不确定我是否错过了代码优先方法中的关键点.

我正在使用基于https://genericunitofworkandrepositories.codeplex.com/的代码的通用存储库模式,并创建了我的实体.

但是当我尝试访问或修改实体时,我会遇到以下情况:

System.InvalidOperationException:实体类型Estate不是当前上下文的模型的一部分.

当我尝试从我的存储库访问它时会发生这种情况:

public virtual void Insert(TEntity entity)
{
    ((IObjectState)entity).ObjectState = ObjectState.Added;
    _dbSet.Attach(entity); // <-- The error occurs here
    _context.SyncObjectState(entity);
}
Run Code Online (Sandbox Code Playgroud)

数据库(./SQLEXPRESS)创建得很好,但实体(表)不是在启动时创建的.

我想知道我是否需要显式设置实体的映射?EF不能自己做到这一点吗?

我的实体是:

public class Estate : EntityBase
{
    public int EstateId { get; set; }
    public string Name { get; set; }
} 
Run Code Online (Sandbox Code Playgroud)

我的背景如下:

public partial class DimensionWebDbContext : DbContextBase // DbContextBase inherits DbContext
{
    public DimensionWebDbContext() :
        base("DimensionWebContext")
    {
        Database.SetInitializer<DimensionWebDbContext>(new CreateDatabaseIfNotExists<DimensionWebDbContext>());
        Configuration.ProxyCreationEnabled = false;
    }

    public new IDbSet<T> Set<T>() where T : class …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework ef-code-first dbcontext

135
推荐指数
6
解决办法
20万
查看次数

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

我正在使用Entity Framework 4.1中引入的DbContext和Code First API.

数据模型使用的基本数据类型,如stringDateTime.我在某些情况下使用的唯一数据注释是[Required],但这不是任何DateTime属性.例:

public virtual DateTime Start { get; set; }
Run Code Online (Sandbox Code Playgroud)

的DbContext子类也很简单,看起来像:

public class EventsContext : DbContext
{
    public DbSet<Event> Events { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Event>().ToTable("Events");
    }
}
Run Code Online (Sandbox Code Playgroud)

初始化设置日期在模型中有意义的值在今年或明年.

但是,当我运行初始化程序时,我收到此错误context.SaveChanges():

将datetime2数据类型转换为日期时间数据类型会导致超出范围的值.该语句已终止.

我不明白为什么会发生这种情况,因为一切都很简单.我也不确定如何解决它,因为没有edmx文件可以编辑.

有任何想法吗?

.net c# entity-framework ef-code-first dbcontext

132
推荐指数
7
解决办法
16万
查看次数

调试代码优先的Entity Framework迁移代码

我首先在我的网站上使用实体框架代码,我只是想知道是否有任何方法来调试迁移代码.你知道,比如设置断点和类似的东西.

我正在使用Package Manager Console使用update-database更新数据库.

谢谢

entity-framework ef-code-first ef-migrations entity-framework-5

131
推荐指数
5
解决办法
4万
查看次数

106
推荐指数
7
解决办法
8万
查看次数

EF 4.1 Code First的复合键

我试图找出如何使用EF代码First 4.1 RC获得复合键.

目前,我正在使用[Key] Data Annotation,但我无法指定多个键.

如何指定复合键?

这是我的例子:

 public class ActivityType
{
    [Key]
    public int ActivityID { get; set; }

    [Required(ErrorMessage = "A ActivityName is required")]
    [StringLength(50, ErrorMessage = "Activity Name must not exceed 50 characters")]
    public string ActivityName { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

我需要"ActivityName"也是一个关键.当然,我可以围绕这个编码,但那不是很好的数据库设计.

composite-key ef-code-first entity-framework-4.1

105
推荐指数
2
解决办法
5万
查看次数

术语"更新 - 数据库"未被识别为cmdlet的名称

我正在使用EF5 beta1,而我之前能够运行"更新数据库".现在我关闭了Visual Studio,我无法让它运行.我收到以下错误:

术语"更新 - 数据库"未被识别为cmdlet,函数,脚本文件或可操作程序的名称.检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试.在行:1 char:16 + Update-Database <<<< -verbose + CategoryInfo:ObjectNotFound:(Update-Database:String)[],CommandNotFoundException + FullyQualifiedErrorId:CommandNotFoundException

我试图重新安装EF5b1并且虽然成功(已安装),但"更新数据库"仍然无效.

谁能帮忙???

entity-framework ef-code-first ef-migrations entity-framework-5

104
推荐指数
9
解决办法
8万
查看次数

数据库中已经有一个对象

程序包管理器控制台中的Update-Database失败.我使用了Entity Framework 6.x和代码优先方法.错误是

"数据库中已经有一个名为'AboutUs'的对象."

我怎么解决这个问题?

internal sealed class Configuration 
    : DbMigrationsConfiguration<Jahan.Blog.Web.Mvc.Models.JahanBlogDbContext>
{
    public Configuration()
    {
        AutomaticMigrationsEnabled = true;
        AutomaticMigrationDataLossAllowed = false;
    }

    protected override void Seed(Jahan.Blog.Web.Mvc.Models.JahanBlogDbContext context)
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

我的DbContext是:

public class JahanBlogDbContext : IdentityDbContext<User, Role, int, UserLogin, UserRole, UserClaim>
{
    public JahanBlogDbContext()
        : base("name=JahanBlogDbConnectionString")
    {
        Database.SetInitializer(new DropCreateDatabaseIfModelChanges<JahanBlogDbContext>());
    }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        modelBuilder.Entity<Comment>().HasRequired(t => t.Article).WithMany(t => t.Comments).HasForeignKey(d => d.ArticleId).WillCascadeOnDelete(true);
        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity<User>().ToTable("User");
        modelBuilder.Entity<Role>().ToTable("Role");
        modelBuilder.Entity<UserRole>().ToTable("UserRole");
        modelBuilder.Entity<UserLogin>().ToTable("UserLogin");
        modelBuilder.Entity<UserClaim>().ToTable("UserClaim");
    }

    public virtual DbSet<Article> Articles { get; set; }
    public …
Run Code Online (Sandbox Code Playgroud)

database entity-framework ef-code-first ef-migrations entity-framework-6

100
推荐指数
7
解决办法
15万
查看次数