标签: ctp4

实体框架CTP 4."无法将值NULL插入列" - 即使没有NULL值

我正在使用EF CTP 4.我有一个简单的控制台应用程序(用于测试目的),它使用EF将一些数据插入SQL数据库.

我在插入物品时遇到了问题

using(var context = GetContext())
{
   BOB b = new BOB();
   b.Id = 1;

   context.Bobs.Add(b);
   context.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

它抛出错误:{"无法将值NULL插入列'Id',表'TestDB.dbo.BOB';列不允许空值.INSERT失败.\ r \n语句已终止."}

该表只有1个Id int NOT NULL字段,它是主键,不是自动递增的Id.

在创建DataContext时,我有这个配置,肯定会被触发.

protected override void OnModelCreating(ModelBuilder builder)
{
    builder.Entity<BOB>().HasKey(b => b.Id);
    builder.Entity<BOB>().MapSingleType().ToTable("BOB");
}
Run Code Online (Sandbox Code Playgroud)

我还预先填充了这个表,然后通过调试器能够通过监视加载这个BOB对象...所以我真的很难过,因为能够加载我的BOB显示一切都是正确的...但是插入一个新的崩溃...

c# entity-framework ctp4

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

实体框架CTP 4 - 代码优先自定义数据库初始化程序

我想实现一个自定义数据库初始化策略,以便我可以使用提供的用户ID和密码生成数据库模式并将其应用于EXISTING EMPTY SQL数据库.

不幸的是,内置策略没有提供我正在寻找的东西:

// The default strategy creates the DB only if it doesn't exist - but it does 
// exist so this does nothing
Database.SetInitializer(new CreateDatabaseOnlyIfNotExists<DataContext>());

// Drops and re-creates the database but then this breaks my security mapping and 
// only works if using a “Trusted" connection
Database.SetInitializer(new RecreateDatabaseIfModelChanges<DataContext>());

// Strategy for always recreating the DB every time the app is run. – no good for 
// what I want
Database.SetInitializer(new AlwaysRecreateDatabase<DataContext>());
Run Code Online (Sandbox Code Playgroud)

我已经解决了以下问题,但这不会创建ModelHash,因此我无法使用"context.Database.ModelMatchesDatabase()"来验证是否已创建数据库模式并阻止多次初始化:

public class …
Run Code Online (Sandbox Code Playgroud)

entity-framework code-first ctp4

27
推荐指数
3
解决办法
1万
查看次数

实体框架代码第一个CTP4默认列值?

我一直在寻找使用Entity Framework CTP4的Code First,您可以使用ModelBuilder来构建表列.有没有办法使用ModelBuilder或其他一些机制为数据库中的列设置默认值?

谢谢!

c# entity entity-framework-4 ctp4

12
推荐指数
2
解决办法
7825
查看次数

如何在不卸载整个产品的情况下将Visual Studio 2013 Update 5还原到Visual Studio 2013更新4

我必须使用Web Essentials 2013但它不适用于Visual Studio 2013更新5.我必须安装VS 2013更新4才能安装Web Essentials 2013.有没有办法我可以安装VS 2013更新4卸载整个VS 2013更新5以节省时间.

c# ctp4 web-essentials visual-studio-2013

6
推荐指数
1
解决办法
2270
查看次数