Tag: entity framework 4.1

entity framework4.1代码优先 – 应初始化许多关系ICollections

在Entity Framework 4.1中创建POCO时,是否应该对类进行编码以初始化Many关系,或者是否有某些理由允许Entity Framework控制这些属性? public class Portfolio { private ICollection _visits; public virtual ICollection Visits { get { if (_visits == null) { _visits = new List(); } return _visits; } set { _visits = value; } } } 要么 public class Portfolio { public virtual ICollection Visits { get; set; } } 还有更好的模式吗?

entity framework4.1:覆盖IEnumerable validation

public abstract class Animal , IValidatableObject { public string Id {get;set;} public string Name {get;set;} public virtual IEnumerable Validate(ValidationContext validationContext) { if (this.Name == “animal”) { yield return new ValidationResult(“Invalid Name From base”, new[] { “Name” }); } } } public class Dog: Animal, IValidatableObject { public string Owner {get;set;} public override IEnumerable Validate(ValidationContext validationContext) […]

LINQ to Entities ToString() – 所提议的解决方案都不起作用?

我发布这个更多是因为我想了解更多,因为我的解决方法基本上是避免使用LINQ to Entities! 如果我可以使用它会很好。 所以,如果有人可以开导我.. 我正在使用代码优先entity framework作为我的数据模型开发ASP.Net MVC 3应用程序(我的第一个)。 它将成为一个在线商店,我正在使用’Admin’控制器,作为管理员,您将能够编辑产品等。在添加新产品时,您必须指定一个类别,这意味着下拉列表类别。 我开始时只根据我在这里找到的信息返回ViewBag中的IEnumerable类别集合。 这似乎是处理事情的一种非常好的方式。 但我得到了同样的错误,你会在下面看到。 因此,根据我在线阅读的建议,我创建了一个专门用于创建新产品和编辑现有产品的独立模型。 Categories集合用于在视图中构建下拉列表。 public class ProductModel { public int Id { get; set; } public int CategoryId { get; set; } public string Name { get; set; } public string Description { get; set; } public double Price { get; set; } public […]

当通过接口访问时,DbContext会在查询时抛出exception

我创建了一个我的DbContext类实现的接口,这使我能够为unit testing创​​建一个假的db上下文。 到目前为止,这适用于我的所有LINQ查询,但是我得到以下exception: Unable to create a constant value of type ‘DemoApp.Member’. Only primitive types (‘such as Int32, String, and Guid’) are supported in this context. 通过接口执行LINQ查询会引发上述exception,但是当直接在我的DBContext上执行完全相同的查询时,查询将100%正常工作。 这是接口和相关的演示代码定义: interface IDemoContext : IDisposable { IDbSet Members { get; set; } IDbSet Teams { get; set; } } public partial class DemoContext : DbContext, IDemoContext { public […]

EF4.1 POCO:我为什么要使用ICollection

几乎所有为Entity Framework 4.1创建的POCO类的示例都是使用ICollection接口定义的: public class TravelTicket { public virtual int Id { get; set; } public string Destination { get; set; } public virtual ICollection Members { get; set; } } 但是,这会导致我的代码中的问题,我需要通过索引访问集合的成员,例如: Paul Paul = TravelTicket.Members [3]; 无法将带有[]的索引应用于类型为“System.Collections.Generic.ICollection”的表达式 那么如何解决这个问题呢?我应该总是将ICollection用于我的POCO集合吗?

为什么我的EF4.1关系在赋值空值时没有被设置为null?

在我的系统中,我有任务,可以选择分配给联系人。 所以在我的业务逻辑中,我有以下代码: if (_contactChanged) { task.Contact = contact; } 如果未指定联系人,则contact变量为null。 当我提交更改时,这应该会使联系人关系无效,但是我注意到99%的时间没有发生这种情况(我已经看到它发生过一次,但是在经过一遍又一遍这段代码之后并不是一贯的)。 当我调试时,我已经validation_contactChanged为true并且内部代码没有被命中。 但是,在我过去task.Contact = contact;之后。 task.Contact = contact; 我注意到,当contact是null时, task.Contact是类型 {System.Data.Entity.DynamicProxies .Contact_4DF70AA1AA8A6A94E9377F65D7B1DD3A837851FD3442862716FA7E966FFCBAB9} 并且仍然有以前的数据绑定它。 为什么代理没有设置为null,我怎样才能让它正常工作?

如何概括对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 = […]

EntityFramework使用错误的tablename

当我尝试从我的Bieren表中获取数据时,我的代码给了我一个EntityCommandExecutionException。 exception消息说它找不到“dbo.Biers”,这很明显,因为它被称为“dbo.Bieren”。 我可以通过重命名数据库中的表来轻松解决这个问题。 Altough我不喜欢修复我的代码错误的数据库。 如何让entity framework使用正确的表而不是更改我的表的名称? 提前致谢。

如何在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 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 […]