Tag: ef code first

EF代码优先 – 包含(x => x.Properties.Entity)1:多关联

给定EF-Code First CTP5实体布局,如下所示: public class Person { … } 其中有一个集合: public class Address { … } 它有一个单一的关联: public class Mailbox { … } 我想要做: PersonQuery.Include(x => x.Addresses).Include("Addresses.Mailbox") 没有使用魔术string。 我想用lambdaexpression式来做。 我知道我上面input的内容将会被编译,并将带回与search条件匹配的所有人员的地址和每个地址的邮箱急切加载,但它是在一个string,激怒了我。 我怎么没有string呢? 感谢堆栈!

如何从头开始删除和重新创build一个现有的EF代码第一个数据库

我在VS 2012中使用EF Code First和EF 5。我使用PM update-database命令,我有一个简单的种子方法来填充一些带有示例数据的表。 我想删除并重新创build我的x.mdb。 更新历史logging似乎不同步。 如果我在我的上下文中注释掉所有的DBSets,update-database运行时没有错误,但在数据库中留下了一些表。 因为我在DB中没有有价值的数据,所以似乎最简单的就是重置所有的东西。 我怎样才能做到这一点?

EF模式首先或代码优先的方法?

我知道这个问题之前已经被问过无数次了,因为我已经阅读了很多关于利弊的文章,但是我仍然不能确定哪种方法适合我。 我对networking编程非常陌生,来自SQL DB Admin /报告撰写背景。 我已经决定尝试build立自己的网站,这个网站可能会在将来有30-40张桌子。 我已经看过两种方法,我喜欢实体模型的方法,因为我喜欢简单的devise师,我喜欢看到整个模型在我面前,它显示在一个快照的整体画面。 此外,我不是一个强大的程序员,我对它使用DbContext生成器模板生成POCO的方式留下了深刻的印象,并且完成了类之间的所有连接。 但是,尽pipe我喜欢模型优先方法,但是我觉得还有一些缺点,我不确定它们是否存在实际缺陷,或者我对模型第一方法和代码优先方法不够了解,因为我仍然很新的这个。 我对使用模式优先方法犹豫不决的原因是: – 主要是因为我在使用MVC 3的模式第一种方法上苦苦寻找教程。我发现使用DbContext的最好的教程是Julie Lerman,但是她并没有介绍使用数据注释和使其他在您重新生成POCO时不会丢失的更改。 大多数与MVC 3相关的教程似乎都使用了代码优先的方法。 大多数人认为这是因为导师不想把重点放在EF上,而是显示出更多的MVC。 我个人认为这是因为微软在其他方面支持Code First方法:) – 如果创build好友类是一个好习惯,为什么我找不到很多教程来展示MVC 3? Buddy类是View Models的另一个名称吗? 为什么我无法find任何教程由微软显示这些好友/视图模型使用MVC 3? – 我试图做两个表之间的基本1对1关系。 在模型中,首先必须将每个表的身份关键字设置为相同的字段,而不是在其中一个表中使用FK,当您有3个或更多表通过1对1关系相互关联时,可能会有点混淆。 在代码中,第一个方法是使用模型构build器并手动进行设置。 我想在MF中,你可以通过进入我根本不想做的XML来改变关系。 – 对代码优先问题的更多支持/帮助 我犹豫使用Code First方法的原因是: 我是一个新手编码器。 – 随着项目的扩展,我们很难跟踪表格和关系。 – 没有模型图,我不得不说我真的喜欢这个想法。 – 通过configuration类映射实体到数据库我觉得不可能:)。 更新表格将需要更改代码和数据库。 在模型中,首先只有一个模型会自动更新数据库和代码,说如果你使用好友类,你也可能需要更新这些。 现在我也看到有些人将Code First和Database第一种方法结合在一起,因为您不要让Code First生成数据库,而是手动创build数据库,并使用代码第一个API来获得它。 我的脑袋正旋转着所有的select和弊端,利弊。 我只是想创build我的网站,而不是思考采取哪种方法。 任何人都可以根据我所说的和/或他们认为未来更主stream的方式,给我一些他们认为最好的方法的见解吗? 非常感谢戴夫

模糊引用与完全相同的命名空间

RC类没有链接到数据库,它是一个简单的类。 class级只在一个地方,而不是部分。 Aérochem.Domaindll项目编译得很好。 注意:如果我在快速修复菜单中select了两个相同的命名空间中的一个,它什么也不做。 注2:这发生在几个类(有些与数据库相关,有些则不是) 有没有解决这个问题或者找出问题的方法?

对EF自动迁移和种子播种的困惑 – 每个节目开始播种

我最近更改了一个应用程序使用以下的开发: DropCreateDatabaseIfModelChanges<Context> 使用: public class MyDbMigrationsConfiguration: DbMigrationsConfiguration<GrsEntities> { public MyDbMigrationsConfiguration() { AutomaticMigrationsEnabled = true; AutomaticMigrationDataLossAllowed = true; } } 在我的数据库环境中,我有: protected override void OnModelCreating(DbModelBuilder modelBuilder) { // Tell Code First to ignore PluralizingTableName convention // If you keep this convention then the generated tables will have pluralized names. modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); //set the initializer to migration Database.SetInitializer(new […]

从不同的机器构build代码第一个DbMigrator会导致错误

我们在SCM下有一个项目。 当我从我的机器构build它,并通过msdeploy发布到远程服务器,一切工作正常。 当我的同事用同一个项目尝试同样的事情时,刚刚从SCM中拉出来,在远程服务器entity framework上4.3.1 DbMigrator抛出: 自动迁移未应用,因为这会导致数据丢失。 事实certificate,初始发布到远程服务器的人似乎是“胜利者”。 如果我们把数据库放在远程服务器上,那么我的同事就可以发布,并且被locking。 我的出版物导致上述相同的错误。 DbMigrator的configuration如下所示: var dbMgConfig = new DbMigrationsConfiguration() { AutomaticMigrationsEnabled = true, //***DO NOT REMOVE THIS LINE, //DATA WILL BE LOST ON A BREAKING SCHEMA CHANGE, //TALK TO OTHER PARTIES INVOLVED IF THIS LINE IS CAUSING PROBLEMS AutomaticMigrationDataLossAllowed=false, //***DO NOT REMOVE THIS LINE, ContextType = typeof(TPSContext), MigrationsNamespace = […]

如何在EF CF中设置POCO的默认值?

在Entity Framework 4 Code Only(CTP3)中,如何为POCO的EntityConfiguration类中的属性设置默认值? public class Person { public int Id { get; set; } public string Name { get; set; } public DateTime CreatedOn { get; set; } } public class PersonConfiguration : EntityConfiguration<Person> { public PersonConfiguration() { Property(p => p.Id).IsIdentity(); Property(p => p.Name).HasMaxLength(100); //set default value for CreatedOn ? } }

无法为类库中的entity framework启用迁移

我刚接触EF 5,并使用他们的代码优先的迁移工具,但我似乎遇到错误,当我尝试启用迁移。 我在包pipe理器控制台中inputEnable-Migrations ,然后说 在当前项目中找不到从DbContext派生的类。 编辑生成的configuration类以指定启用迁移的上下文。 为项目MyApp.MvcUI启用了代码优先迁移。 然后在我的MvcUI项目中创build一个Migrations文件夹和一个Configuration类。 事情是,我的DbContext生活在一个名为MyApp.Domain的类库项目中。 它应该做这个项目中的所有内容,并且应该没有问题find我的DbContext。

entity framework数据库中的代码优先默认数据

如何在应用程序启动之前或生成数据库之后处理需要预先存在的数据的情况。 例如,我有一个我想在代码优先生成之后加载到数据库中的国家列表。 我该怎么做呢? 应用程序的结构如下: Repository > Service > WebMVC xml在WebMVC项目中。

entity framework,更新相关对象的问题

我目前正在使用entity framework的最新版本的项目,我遇到了一个我似乎无法解决的问题。 当涉及到更新现有对象时,我可以很容易地更新对象属性,直到涉及到另一个类的引用。 在下面的例子中,我有一个名为Foo的类,它存储各种属性,其中2个是其他类的实例 public class Foo { public int Id {get; set;} public string Name {get; set;} public SubFoo SubFoo {get; set} public AnotherSubFoo AnotherSubFoo {get; set} } 当我使用下面的Edit方法时,我传递了我希望更新的对象,并且我可以设法让Name正确更新,但是我没有设法find一种方法来获取SubFoo的属性。 例如,如果SubFoo类具有Name属性,并且已经更改,并且在我的数据库和newFoo之间不同,它不会被更新。 public Foo Edit(Foo newFoo) { var dbFoo = context.Foo .Include(x => x.SubFoo) .Include(x => x.AnotherSubFoo) .Single(c => c.Id == newFoo.Id); var entry = context.Entry<Foo>(dbFoo); […]