将代码中的数据库表首先转换为模型的最佳方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将代码中的数据库表首先转换为模型的最佳方法相关的知识,希望对你有一定的参考价值。
我有新闻表,我需要转换为模型。
像这样 :
我需要通过查看NewsModel
,我有桌子News
。
我转换它:
public ActionResult EditNews(int NewsID)
{
NewsModel model = new NewsModel();
var editservice = _NewsSerivce.NewsByID(NewsID);
model.NewsID = editservice.NewsID;
model.NewsHeader = editservice.NewsHeader;
model.NewsTitle = editservice.NewsTitle;
model.NewsText = editservice.NewsText;
model.NewsDefaultFile = editservice.NewsDefaultFile;
model.CatID = editservice.CatID;
model.SubCatID = editservice.SubCatID;
DropDownCategory(model);
return View("Edit",model);
}
它工作,但我需要使用最好的转换方式。
什么最好的方式?
答案
你可以使用这个nuget:http://automapper.org/
文档在这里:https://github.com/AutoMapper/AutoMapper/wiki/Getting-started
我不知道你的班级怎么样,所以我上课了:
public class TestClass
{
public int NewsID { get; set; }
public string NewsHeader { get; set; }
public string NewsTitle { get; set; }
public string NewsText { get; set; }
public string NewsDefaultFile { get; set; }
public int CatID { get; set; }
public int SubCatID { get; set; }
}
和我的映射类:
public class NewTestClass
{
public int NewsID { get; set; }
public string NewsHeader { get; set; }
public string NewsTitle { get; set; }
public string NewsText { get; set; }
public string NewsDefaultFile { get; set; }
public int CatID { get; set; }
public int SubCatID { get; set; }
}
我像这样映射这个类:
TestClass tc = new TestClass { CatID = 1, NewsID = 1, SubCatID = 1, NewsDefaultFile = "test1", NewsHeader = "test2", NewsText = "test3", NewsTitle = "test4" };
Mapper.Initialize(cfg => cfg.CreateMap<TestClass, NewTestClass>());
var config = new MapperConfiguration(cfg => cfg.CreateMap<TestClass, NewTestClass>());
var mapper = new Mapper(config);
NewTestClass ntx = Mapper.Map<NewTestClass>(tc);
Console.WriteLine(ntx.NewsID);
另一答案
在我看来,这个link是实体框架代码优先到现有数据库的最佳方法。
在visual studio中,转到Project - > Add New Item ...从左侧菜单中选择Data,然后选择ADO.NET Entity Data Model,输入BloggingContext作为名称,然后单击OK这将启动实体数据模型向导从数据库中选择Code First并单击Next WizardOneCFE选择与您在第一部分中创建的数据库的连接,然后单击Next WizardTwoCFE单击Tables旁边的复选框以导入所有表,然后单击Finish WizardThreeCFE
以上是关于将代码中的数据库表首先转换为模型的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章