Tag: ef code first

如何概括对DbContext的DbSet 成员的访问?

我有一个DbContext ,其中包含以下几种类型的成员: public DbSet JobLevels { get; set; } public DbSet Countries { get; set; } public DbSet Races { get; set; } public DbSet Languages { get; set; } public DbSet Titles { get; set; } 所有这些都是where T: IdNamePairBase ,它只有Id和Name成员。 我正在拼命寻找一个可以访问这些成员的公共接口,将以下MVC3控制器代码概括为一个控制器: public ActionResult Edit(DropDownListModel model, Guid) { var dbSet = _dbContext.Countries; var newItems = […]

如何在Entity Framework Code First中表示Bridge表

我试图找出如何表示两个实体之间的桥接表(多对多关系)我正在使用entity framework代码优先 Student: StudentID int PK StudentName VARCHAR(50) Class: ClassID int PK ClassName VARCHAR(50) StudentClass: StudentID INT PK ClassID INT PK 应该使用什么样的最佳类结构来在entity framework代码中表示它,如何从桥接表中进行选择并插入其中。 我应该像这样代表它们的类: public class Student { public int StudentId { get; set; } public string StudentName { get; set; } public List Class { get; set; } } public class Class { public […]

entity framework5 – 基于枚举的派生类的判别器

我有以下内容(为了清楚起见,缩写) – 一个枚举,一个带有该枚举的基类,以及两个将枚举设置为特定值的派生类。 public enum MyEnum { Value1, Value2 } public class MyBaseClass { public MyEnum { get; protected set; } } public class DerivedOne: MyBaseClass { public DerivedOne { MyEnum = MyEnum.Value1; } } public class DerivedTwo: MyBaseClass { public DerivedTwo { MyEnum = MyEnum.Value2; } } 我想要做的是让Entity Framework 5自动区分DerivedOne和DerivedTwo, 并使用基于MyEnum值的鉴别器 。 我应该能够这样做,按照惯例,每个MyEnum == […]

EF代码优先迁移:没有NUGET的MigrateDatabaseToLatestVersion

我需要帮助来阐明EF Code First Migrations如何在生产机器上运行。 我有一些实体类和DbContext派生类来访问实体。 现在,我想执行以下几项操作: 当我的应用程序启动时,它必须创建数据库,如果数据库不存在; 那么数据库模式必须调整到模型; 如果刚刚创建了数据库,我想创建一些索引; 另外,如果刚刚创建数据库,它必须由一些初始数据播种; 所有这些都必须自动执行,不需要任何NUGET命令或外部工具。 我已经阅读了一些关于迁移的文章,但是他们主要关注NUGET的使用或运行时的纯自动数据库更新(通过MigrateDatabaseToLatestVersion )。 我知道DbMigration类,但我无法理解,如何将MigrateDatabaseToLatestVersion策略和DbMigration粘合在一起。 UPDATE。 事实上,我不能在项目中使用NUGET,我需要“手动”进行迁移。

entity framework4.1 RC:Code First EntityTypeConfigurationinheritance问题

我试图使用一个通用的EntityTypeConfiguration类来为我的所有实体配置主键,以便每个派生的配置类不会重复。 我的所有实体都实现了一个公共接口IEntity(它表示每个实体必须具有int类型的Id属性)。 我的配置基类如下所示: public class EntityConfiguration : EntityTypeConfiguration where TEntity : class , IEntity { public EntityConfiguration() { HasKey( e => e.Id ); Property( e => e.Id ).HasDatabaseGeneratedOption( DatabaseGeneratedOption.Identity ); } } 然后,每个实体都有自己的特定配置类,如下所示: public class CustomerConfiguration : EntityConfiguration { public CustomerConfiguration() : base() { // Entity specific configuration here } } 它编译得很好,但我遇到的问题是,在运行时,当EF 4.1 RC尝试创建模型时,我会引发以下exception: System.InvalidOperationException未处理Message […]

entity framework,鉴别器列,但没有inheritance

我想测试一个非常简单的Code-First示例。 我有一个名为PurchaseItem的类,它不是从任何基类inheritance的,也没有其他类从它inheritance。 它根本与其他模型无关: public class PurchaseItem { public int Id { get; set; } public string Buyer { get; set; } public string Item { get; set; } public int Quantity { get; set; } public int Price { get; set; } } 这是我的数据库上下文代码。 我将数据库初始化程序设置为null ,因为我已经有了数据库: public class MiniContext : DbContext { public MiniContext() { […]

EF6.X中的EntityFramework代码第一个FluentAPI DefaultValue

如何使用EntityFramework Code First FluentAPI为bool属性设置默认值? 就像是: Property(l => l.PropertyFlag).HasColumnType(“bit”).DefaultValue(1);

多对多映射不起作用 – EF 4.1 RC

更新:经过一番研究后,我的多对多映射似乎无法正常工作。 嗯… 我正在将数据访问项目从EF 4.1 CTP4升级到EF 4.1 RC,我遇到了新的EntityTypeConfiguration设置问题。 具体来说,我遇到了多对多关系的问题。 当我试图获取.First()项时,我得到一个Sequence contains no elementsexception。 特别的例外并不是那么有趣。 所有它说的是没有项目但我知道集合中应该有项目 – 所以我的新映射必定存在问题。 这是我到目前为止的代码: 产品型号 public class Product : DbTable { //Blah public virtual ICollection Categories { get; set; } public Product() { //Blah Categories = new List(); } } BaseConfiguration public class BaseConfiguration : EntityTypeConfiguration where T : DbTable { public […]

首先EF4代码 – 从db中删除父项时删除所有子项?

我有一个被安排到层次结构中的类,例如: class TestContainer { … bla bla bla… public Virtual Item Items {get;set;} } Class Item { [Key] public int ID {get;set;} public string PropA {get;set;} public string PropB {get;set;} [InverseProperty(“Parent”)] public virtual ICollection Children { get; set; } [InverseProperty(“Contents”)] public virtual Item Parent { get; set; } } 所以,我有一个更新方法,允许用户上传更新的子集。 我一开始并没有意识到但删除我的容器TestContainer并没有删除这些项目。 好的,没问题吧? 我插入了以下function(这可能非常难看,但我仍处于原型设计阶段) private void […]

npgsql和Entity Framework代码首先设置问题

我得到的最新错误是 ERROR: 42P01: relation “dbo.__MigrationHistory” does not exist 但我确信这只是因为早先没有正确设置。 我目前正在尝试设置entity framework4.4代码首先使用Npgsql 2.0.12,我已经完成了以下操作,它似乎至少现在连接到数据库,但是当我做context.saveChanges()时给我上面的错误; 更新了.net 2.0.50727的machine.config; 将dll添加到项目中 将app.config更改为如下所示; 传入的数据如下所示 public class Animal {[Key] public int Id {get; 组; public string Name {get; 组; } public string描述{get; 组; } public int Age {get; 组; public int NoOfLegs {get; 组; }} 其他所有东西都是通用的现成环境 任何关于我做错了什么或提示或教程的帮助,任何事都会有所帮助。 这只是一个概念certificate,但我不介意让它工作。 抱歉对代码格式化的不良使用,堆栈交换不会让我因为某些原因正确使用它,即使它的格式正确。