Tag: ef code first

使用数据注释进行多对多映射

[Table(“UserMaster”)] public class UserMaster { public UserMaster() { this.Roles = new List(); } [Key] public int UserId { get; set; } public string UserName { get; set; } public ICollection Roles { get; set; } } [Table(“Role”)] public class Role { public Role() { this.Users = new List(); } public int RoleId{ get; set; } […]

当仅填充相关对象的ID时,不加载导航属性

我正在努力建立多对一的关系。 表示“many”的实体具有指向父实体的导航属性。 它看起来像这样: public abstract class BaseEntity { /// /// Key Field for all entities /// /// [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] public Guid Id { get; set; } /// /// Date entity was created /// public DateTime DateCreated { get; set; } /// /// Last date Modified /// public DateTime DateModified { get; set; } /// /// […]

首先使用EF代码对Id字段进行asp.net mvc 3validation

我有以下型号: public class Product { [Key] [HiddenInput(DisplayValue = false)] public int Id { get; set; } [Required] [StringLength(10)] public string ProductCode { get; set; } [Required] [StringLength(40)] public string ProductName { get; set; } } 以及控制器中的以下一对Add方法: [HttpGet] public ActionResult Add() { return View(); } [HttpPost] [ValidateInput(false)] [ValidateAntiForgeryToken] public ActionResult Add(Product product) { productRepository.Add(product); return RedirectToAction(“Index”); […]

EF Code-Firstinheritance了一个基类来实现简单的历史记录

我正在遇到如下所述的实施我的计划的一些错误。 我对解决特定错误并不感兴趣,因为我知道这是不是一个好主意。 所有具有历史记录的对象都来自具有单个属性public Guid ID { get; set; } public Guid ID { get; set; } public Guid ID { get; set; } 。 后代可能是: public class Taco : AuditableObject { public string Seasoning { get; set; } } 现在,我想实现save事件处理程序来写入下表(类) public class AuditItem { public Guid ID { get; set; } public virtual AuditableObject Object […]

有没有办法在运行时查看Entity Framework Code First的列映射?

我正在尝试编写Entity Framework Code First的附加组件,我需要一种方法来在运行时获取模型列的配置。 例如,这是OnModelCreating在DbModelBuilder上的代码设置: builder.Entity() .Property(n => n.ReportsToID).HasColumnName(“ReportsTo”); 完成此操作后,EntityFramework知道我的属性名称与表中的列名称不同,但是如何在运行时找到字符串”ReportsTo”与ReportsToID相关ReportsToID ? 理想情况下,我正在尝试编写如下方法: public string GetMappedColumnName(DbContext context, Func selector); 将使用如下: string mappedColumnName = GetMappedColumnName(context, x => x.ReportsToID); 我只是不知道在DbContext中找到映射列名的位置。 他们甚至可以访问吗?

一个或零到一个entity framework代码First FluentApi

我需要创建一个或零个到一个引用的fluentapi,并在两个实体上都有导航属性。 EntityTwo应该包含存储外键的简单proerty(EntityOneId) public class EntityOne { public int Id { get; set; } public EntityTwo EntityTwo { get; set; } } public class EntityTwo { public int Id { get; set; } public int EntityOneId { get; set; } public EntityOne EntityOne { get; set; } } public class MyDbContext : DbContext { protected override […]

多个相同类型的对象集

我尝试在EF5 RC中创建一个与此类似的数据上下文: class WordContext : DbContext { public DbSet PossibleWords { get; set; } public DbSet UsedWords { get; set; } } 当我尝试更新数据库时,我收到一个例外说: 不支持每种类型的多个对象集。 对象集’PossibleWords’和’UsedWords’都可以包含’TestProject.Word’类型的实例。 经过一些谷歌搜索后,似乎在EF中实际上不可能构建这样的数据上下文。 我的问题是: 存储这样的数据的代码优先设计是什么? 我想一个微不足道的可能是这样的: class WordContext : DbContext { public DbSet Words { get; set; } } class Words { public int ID { get; set; } public IList PossibleWords […]

为什么EF代码首先生成一个无关的外键列?

我正在使用entity framework代码 – 首先自动创建我的数据库模式,我的一个实体看起来像这样: public class AssessmentsCaseStudies { #region Persisted fields [Required] [Key, Column(Order=0)] [ForeignKey(“Assessment”)] public int AssessmentId { get; set; } [Required] [Key, Column(Order=1)] [ForeignKey(“CaseStudy”)] public int CaseStudyId { get; set; } [Required] public int Score { get; set; } [ForeignKey(“Follows”)] public int? FollowsCaseStudyId { get; set; } #endregion #region Navigation properties public virtual […]

使用Entity Framework Fluent Api映射System.Uri

非常简单的问题。 我有一个具有System.Uri类型属性的模型。 Uri没有默认的无参数构造函数,也没有ID字段。 有没有办法覆盖我的模型生成以自定义方式将其存储在数据库中(例如,只是作为string )? 在NHibernate中,我之前通过实现IUserType实现了这IUserType ,但我在CodeFirst中找不到类似的机制。 显然,我可以创建一个自定义类型,在引擎盖下使用Uri并公开常规的可映射属性和构造函数,我只是好奇是否有任何方法来映射这个系统类型,这样我就不必像这样做一个包装器。

Sequence不包含匹配元素 – EntityFramework

我正在使用EF 6.1.0并正在创建WCF服务。 首先,我创建了一个包含我的实体,Mappers和Context的类库,用于初始化EF。 我还创建了一个包含上下文实例的类,并具有以下代码: public IQueryable GetAll() { return context.[Entity].AsQueryable(); } 另一方面,我在同一个项目上创建了一个WCF服务,并在.svc文件中调用函数GetAll(),如下所示: public List GetList() { [iObject] repository = new [Object](new Context()); return repository.GetAll().ToList(); } 该项目正在建设中。 我甚至检查了配置,它位于正确的数据库中。 但是,应该创建的数据库和表不存在,并且返回中显示错误“Sequence contains no matching element”。 如果这个令人困惑,您可以使用Code First Entity Framework向我指出WCF服务的一些链接。