2017-02-20 5 views
2

私はニュースのテーブルを持っており、モデルに変換する必要があります。このようなcodefirstでデータベーステーブルをモデルに変換する最も良い方法

私は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); 
    } 

が、それは動作しますが、私は変換のための最善の方法を使用する必要があります。

私は、その変換されます。

何が最善の方法ですか?

+0

「データベースからのコードファースト」とEntity Frameworkのを試してみてください。https://msdn.microsoft.com/en-us/library/jj200620(v=vs.113 ).aspx – Bambuk

答えて

2

あなたはこの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); 
+0

私のためにこれをマップできますか? – Kianoush

+0

今私はできません:(私は午後5時まで働いています:(編集:このビデオのように同じことをするhttp://www.dnrtv.com/default.aspx?showNum=155 – Newer

+0

あまりにもあなたのために長すぎる:)))) – Kianoush

関連する問題