一对多关系domain Model中设置使用AutoMapper时出错
在使用AutoMapper时,把数据从VO—PO时显示如下错误,错误提示说在一对多关系中已将集合设置为EntityCollection,那么这个是为什么呢。

看下action中的代码,我们可以发现这是很常用的方法,
[HttpPost, ActionName("Create")]
public ActionResult CreatePost(CreateResponseTextMessageView model)
{
if (ModelState.IsValid)
{
try
{
model.CreateTime = DateTime.Now.ToLocalTime();
var entity = Mapper.Map<ResponseTextMessage>(model);
_unitOfWork.ResponseTextMessageRepository.Insert(entity);
_unitOfWork.Save();
}
catch (Exception ex)
{
ErrorNotification(ex.Message);
//throw new Exception(ex.Message);
}
SuccessNotification("添加成功");
return RedirectToAction("Index");
}
return View(model);
}
通过AutoMapper将VO—PO保存到数据库中,可是为什么会出现错误了,之前报的错误是说在Mapper转换的时候问题,这个好解决,把其对应的转换给添加上,现在这个没有头绪了,下面是之前的domain中的代码。
/// <summary>
/// 响应的文本消息
/// </summary>
public class ResponseTextMessage : BaseEntity
{
public ResponseTextMessage()
{
this.RequestMessage = new Collection<RequestMessage>();
}
/// <summary>
/// 文本内容
/// </summary>
public virtual string Content { get; set; }
/// <summary>
/// 响应消息分类
/// </summary>
public virtual ResponseMsgType ResponseMsgType { get; set; }
/// <summary>
/// 一对多属性配置----相当于导航属性
/// </summary>
public virtual ICollection<RequestMessage> RequestMessage { get; set; }
}
仔细看它是说在基类中出错,那么我们就把基类打开,发现这里我已经在ctor中将其实例化了一遍了,要是在转换就会显示不能成功。那么我就将其取消就可以了,
/// <summary>
/// 响应的文本消息
/// </summary>
public class ResponseTextMessage : BaseEntity
{
public ResponseTextMessage()
{
// this.RequestMessage = new Collection<RequestMessage>();
}
/// <summary>
/// 文本内容
/// </summary>
public virtual string Content { get; set; }
/// <summary>
/// 响应消息分类
/// </summary>
public virtual ResponseMsgType ResponseMsgType { get; set; }
/// <summary>
/// 一对多属性配置----相当于导航属性
/// </summary>
public virtual ICollection<RequestMessage> RequestMessage { get; set; }
}
这样就可以了,原因就是我们之前说的那样。
一对多关系domain Model中设置使用AutoMapper时出错的更多相关文章
- model中设置默认值时 ,使用 lambda 与否的差别以及datetime的默认值方法
'date': '2013-01-01' #固定值 'date': time.strftime('%Y-%m-%d') #启动时候的值 'date': lambda *a: time.strfti ...
- MyEclipse中设置开发项目时使用的默认JDK
安装好MyEclipse之后,在MyEclipse中开发项目时,默认使用的是MyEclipse是自带的JDK,如下图所示: 如果我们需要使用自己安装好的JDK,那么就需要在MyEclipse中重新设置 ...
- Django model中设置多个字段联合唯一约束
Django中model部分的写法, 参见 unique-together 部分文档. class MyModel(models.Model): field1 = models.CharField(m ...
- Model中设置表单验证方法
Model类里面定义$_validate属性支持的验证因子格式: 格式:array(验证字段,验证规则,错误提示,验证条件,附加规则,验证时间). 验证条件: (1)Model::EXISTS_TO_ ...
- Django model 中设置联合约束和联合索引
来自:https://blog.csdn.net/ding_312/article/details/81264910 class Cart(models.Model): user = models.F ...
- 如何在PL/SQL Developer 中设置 在select时 显示所有的数据
在执行select 时, 总是不显示所有的记录, 要点一下, 下面那个按钮才会显示所有的数据. 解决方法: Tools>Preferences>Window Types>SQ ...
- perl中设置POST登录时的重定向
默认地, perl提交post登录时是不会重定向的 要让它重定向, 可以用如下方法: my $cookie = HTTP::Cookies->new(); push @{$ua->requ ...
- ubuntu/debian安装mysql遇到的问题及解决方法_1.dpkg中mysql-server-5.5 (configure)时出错 mysql-server-5.5 E: Sub-process /usr/bin/dpkg returned an error code (1)
我的debian7之前安装了mysql-server,是通过apt安装的,后来我卸载掉, 然后用whereis mysql查找, 把所有关于mysql的目录删除掉,包括带mysqld的目录及文件. 重 ...
- win10想开测试模式,提示“设置元素数据时出错
系统中按WIN键,搜索栏输入'CMD',右键点击找到的cmd.exe,选择'以管理员身份运行'.输入:"bcdedit -set loadoptions DDISABLE_INTEGRITY ...
随机推荐
- 开始VS 2012中LightSwitch系列的第5部分:我可以使用用户权限来控制访问权吗?
[原文发表地址] Beginning LightSwitch in VS 2012 Part 5: May I? Controlling Access with User Permissions [ ...
- Cloneable接口和Object的clone()方法
为什么要克隆 为什么要使用克隆,这其实反映的是一个很现实的问题,假如我们有一个对象: public class SimpleObject implements Cloneable { private ...
- 设计模式之美:Manager(管理器)
索引 意图 结构 参与者 适用性 效果 实现 实现方式(一):Manager 模式的示例实现. 意图 将对一个类的所有对象的管理封装到一个单独的管理器类中. 这使得管理职责的变化独立于类本身,并且管理 ...
- Java实现敏感词过滤
敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...
- GOOGLE PROTOBUF开发者指南
原文地址:http://www.cppblog.com/liquidx/archive/2009/06/23/88366.html 译者: gashero 目录 1 概览 1.1 什么是pro ...
- 使用IPostBackEventHandler让JavaScript“调用”回传事件
在由ASP.NET所谓前台调用后台.后台调用前台想到HTTP——实践篇(二)通过自己模拟HTML标签事件与服务器交互,讲了ASP.NET的服务器控件是怎么render成HTML后市怎么“调用”后台方法 ...
- Android Studio2.x版本无法自动关联源码的解决方法
Android Studio2.x版本无法自动关联源码的解决方法 在学习android开发过程中,对于一个不熟悉的类,阅读源码是一个很好的学习方式,使用andorid studio开发工具的SDK M ...
- Winform文件下载之WinINet
在C#中,除了webclient我们还可以使用一组WindowsAPI来完成下载任务.这就是Windows Internet,简称 WinINet.本文通过一个demo来介绍WinINet的基本用法和 ...
- Centos Another app is currently holding the yum lock
yum命令用ctrl+z命令中断后,再运行yum时,出现: Existing lock /var/run/. Another app is currently holding the yum lock ...
- Flex contextMenu
没想到再这里也要跌跌撞撞. 这个东西我很久之前就懂了的啊! 最开始是这么写的: private function init():void { var contextMenu:ContextMenu = ...