我想知道,我有一個應用程序在asp.net mvc和nhibernate。我已經閱讀了關於asp.net mvc的Views,不應該知道Domain,它需要使用DTO對象。所以,我試圖做到這一點,我發現AutoMapper組件,並且我不知道爲某些域對象執行DTOS的正確方法。我有這樣的域名:ASP.Net MVC視圖應該如何處理我的DTO對象?
public class Entity
{
public virtual int Id { get; set; }
public virtual bool Active { get; set; }
}
public class Category : Entity
{
public virtual string Name { get; set; }
public virtual IList<Product> Products { get; set; }
public Category() { }
}
public class Product : Entity
{
public virtual string Name { get; set; }
public virtual string Details { get; set; }
public virtual decimal Prince { get; set; }
public virtual int Stock { get; set; }
public virtual Category Category { get; set; }
public virtual Supplier Supplier { get; set; }
public Product() { }
}
public class Supplier : Entity
{
public virtual string Name { get; set; }
public virtual IList<Product> Products { get; set; }
public Supplier() { }
}
我想要得到一些例子,我該如何做我的DTOs查看?我只需要在DTO中使用字符串?而我的控制器,它應該得到一個域對象或DTO,並將其轉換到一個域以保存在存儲庫中?
非常感謝!
乾杯
嗨Branislav,感謝aswer! :) 我會這樣做(儘可能使用原始類型)... 您看到了關於驗證,並在.net框架中有一個dataAnnocations來驗證對象的屬性....如果我將使用DTO在(我的控制器的)後置操作中必須是有效的,代碼必須檢查它,所以我需要在DTO中使用dataAnnotations? 和你用什麼來創建你的DTOs? AutoMapper是一個不錯的選擇?或者用硬代碼來做? 再次感謝男人! 乾杯 PS:我很抱歉我的英語! – 2010-05-19 15:53:12
我使用AutoMapper。它非常穩定且易於使用。對於價值,您可以使用數據偏移或一些第三方庫,如xVal - http://blog.stevensanderson.com/2009/01/10/xval-a-validation-framework-for-aspnet-mvc/ – 2010-05-19 16:04:38