一对多关系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 ...
随机推荐
- 004. Asp.Net Routing与MVC 之二: 请求如何激活Controller和Action
上篇讲到 请求到达 MvcRouteHandler ,并且透过 IRouteHandler.GetHttpHandler 获取到了真正的处理程序 MvcHandler 这次我们看看,MvcHandle ...
- MySQL--将MySQL数据导入到SQL Server
随着时代的进步,社会的发展,各种技术层出不穷五花八门乱七八糟数不胜数(写作文呢!!!) 不扯废话,简单而言,很多公司都会同时使用多种数据库,因此数据在不同数据库之间导入导出就成为一个让人蛋疼的问题,对 ...
- Lucene系列-搜索
Lucene搜索的时候就要构造查询语句,本篇就介绍下各种Query.IndexSearcher是搜索主类,提供的常用查询接口有: TopDocs search(Query query, int n); ...
- linux下获取线程号
#include <sys/syscall.h> pid_t gettid() { return syscall(SYS_gettid); }
- jetty
相关的文章太多了,我只按照自己的意思做简单总结. 参见: http://www.cnblogs.com/duanxz/p/3154982.html http://www.cnblogs.com/win ...
- ios UIView sizeToFit sizeThatFits
UILabel *testLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 50, 0, 0)]; testLabel.backgroundC ...
- VUE 意淫笔记
caihg Vue.js 递归组件实现树形菜单 最近看了 Vue.js 的递归组件,实现了一个最基本的树形菜单. 项目结构: main.js 作为入口,很简单: 1 2 3 4 5 6 7 8 9 i ...
- NodeJS系列~第二个小例子,解决中文乱码的问题
返回目录 为了使页面支持的字符更多,所以编码使用UTF-8,注意,你的原js文件的编码也要是utf-8的,可以通过记事本进行编码的修改
- JS之BOM
ECMAScript 是 JavaScript 的核心,但如果要在 Web 中使用 JavaScript,那么 BOM(浏览器对象模型)则无疑才是真正的核心.BOM 提供了很多对象,用于访问浏览器的功 ...
- Atitit 发帖机系列(6) USRQBN2201 setup spec安装程序的实现规范与标准化解决方案
Atitit 发帖机系列(6) USRQBN2201 setup spec安装程序的实现规范与标准化解决方案 安装主要解决一个问题,就是resin的内容启动路径以及端口..这里是使用的端口8077 主 ...