asp.net – 向实体框架添加其他属性4代码首先是CTP 5实体
发布时间:2020-05-30 06:46:21 所属栏目: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; s
|
我首先使用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 TreeView和选择所选节点
- 介绍几种 ADO.net 中的数据库连接方式
- ASP.NET CompareValidator问题
- 从ASP.Net MVC视图访问应用程序设置
- asp.net-mvc – 人们如何使用编辑器/显示模板与Html助手?
- asp.net-mvc-4 – 为什么ResolveBundleUrl不能用于自定义文
- asp.net – 如何修复在IIS中运行的Web服务中的“请求格式无
- asp.net – 如何将IIS Developer Express切换到“经典模式”
- Asp.net MVC5与Bootstrap EditorFor尺寸
推荐文章
站长推荐
- asp.net-mvc – ASP.NET MVC中的全局错误处理(控
- 使用asp.net中的web api通过http进行身份验证
- 使用ASP.NET MVC在JS文件中设置jQuery的ajax url
- asp.net – 哪些移动浏览器支持javascript(和Aja
- asp.net – 如何处理错误时使用jQuery.ajax()?
- asp.net-mvc – 如何使用Autofac将控制器的Model
- asp.net-mvc – ASP.net MVC 3教程推荐
- asp.net – 为jQuery寻找一个好的数据网格插件
- asp.net-mvc – ASP.NET MVC中的Authorize属性是
- asp.net – 获取当前以aspnet mvc成员身份登录的
热点阅读
