我有一个数据库优先的ASP.NET MVC应用程序和从数据库生成的实体模型,但我需要向模型添加一些未生成的东西。像这样正确显示日期:
code
所以我考虑在concept2
文件夹中创建另一个模型,并复制与edmx完全相同的内容并添加我需要的内容。但这会产生问题,我无法将对象从 [DataType( DataType.Date )]
[DisplayFormat( DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true )]
转换为Models
,我该如何实现?
我已经尝试过自动播放器但是并没有真正起作用,我读过的文档是旧版本(v5之前版本),它有一些过时的功能。 这是我的实体型号代码:
EntityModels.Movie
实现目标的最佳方法是什么?
答案 0 :(得分:1)
您是否尝试使用[NotMapped]属性在相同的Movie模型(在Movies.EntityModels中)创建一个新的公共属性,即ReleaseDateFormatted。
答案 1 :(得分:1)
你可以手动编写一个mapper作为扩展方法,它非常简单。
public class Model()
{
public string Test1 {get;set;}
public string Test2 {get;set;}
public string Test3 {get;set;}
}
public class Entity(){
public string Test1 {get;set;}
public string Test2 {get;set;}
public string Test3 {get;set;}
}
现在您创建一个扩展方法,例如“ToModel”,将实体对象转换为您的模型:
public static class MyExtensions{
public static Model ToModel(this Entity entity){
var model = new Model()
model.Test1 = entity.Test1;
model.Test2 = entity.Test2;
model.Test3 = entity.Test3;
return model;
}
}
和他们,无论你拥有实体对象,只需调用扩展方法:
public JsonResult test()
{
var entity = new Entity()
//{ Fill your entity properties from your dataset or something }
var model = entity.ToModel();
}