asp.net – 向实体框架添加其他属性4代码首先是CTP 5实体
发布时间:2020-12-15 22:35:55 所属栏目:asp.Net 来源:网络整理
导读:我首先使用ASP.NET MVC 3和实体框架代码CTP 5.我想知道是否可以添加未映射到表列的其他属性? 我有一个新闻类,它定义如下: public class News : Entity{ public int NewsId { get; set; } public string Title { get; set; } public string Body { get; set
我首先使用ASP.NET MVC 3和实体框架代码CTP 5.我想知道是否可以添加未映射到表列的其他属性?
我有一个新闻类,它定义如下: public class News : Entity { public int NewsId { get; set; } public string Title { get; set; } public string Body { get; set; } public bool Active { get; set; } } 我的数据库上下文类: public class MyContext : DbContext { public DbSet<News> Newses { get; set; } } 在实体类中,我有一个定义为的属性: public IList<RuleViolation> RuleViolations { get; set; } 我还没有对这部分进行编码,但我希望在验证对象时将所有破坏的规则添加到此列表中.我得到的错误是: One or more validation errors were detected during model generation: System.Data.Edm.EdmEntityType: : EntityType 'RuleViolation' has no key defined. Define the key for this EntityType. System.Data.Edm.EdmEntitySet: EntityType: The EntitySet RuleViolations is based on type RuleViolation that has no keys defined. 这是我的重叠代码: public News FindById(int newsId) { return context.Database.SqlQuery<News>("News_FindById @NewsId",new SqlParameter("NewsId",newsId)).FirstOrDefault(); } 更新2011-03-02: 这是我的实体类: public class Entity { public IList<RuleViolation> RuleViolations { get; set; } public bool Validate() { // Still needs to be coded bool isValid = true; return isValid; } } 这是我的RuleViolation类: public class RuleViolation { public RuleViolation(string parameterName,string errorMessage) { ParameterName = parameterName; ErrorMessage = errorMessage; } public string ParameterName { get; set; } public string ErrorMessage { get; set; } } 这是我的上下文类: public class MyContext : DbContext { public DbSet<News> Newses { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<News>().Ignore(n => n.RuleViolations); } } 解决方法
您可以通过向MyContext类的OnModelCreating方法添加忽略规则来使用Fluent API忽略该类型
public class MyContext : DbContext { public DbSet<News> Newses { get; set; } protected override void OnModelCreating(ModelBuilder builder) { builder.Ignore<RuleViolation>() } } 或者,您可以使用NotMapped属性忽略该属性 public class Enitity { [NotMapped] public IList<RuleViolation> RuleViolations { get; set; } //other properties here } 然后实体框架将忽略该属性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何在ASP.Net内容页面中添加元标记
- asp.net-mvc – 错误NU1002项目WebApplication1中的依赖项E
- asp.net-mvc – JQuery中的ViewBag
- asp.net – 从内容页面设置服务器控件属性
- asp.net-mvc – 使用Automapper将字符串映射到枚举
- asp.net-mvc – ASP.NET MVC会话过期
- asp.net-mvc-3 – ASP.NET MVC – 导航当前页面突出显示
- asp.net – 如何防止Entity Framework将FileStream列加载到
- asp.net – CreateUserWizard – 添加步骤,但不要创建用户,
- asp.net-web-api – 如何创建角色并将用户添加到ASP.NET MV
推荐文章
站长推荐
热点阅读