我正在开发一个使用 LINQ-SQL 连接到我的 SQL Server 数据库的 MVC 应用程序。
目前在获取数据时,我将 LINQ 对象的属性传递给域模型,然后在我的视图模型中创建它的属性。
例如,我的视图模型可能具有以下属性:
public Models.UserModel user { get; set; }
public List<Models.CountryModel> countries { get; set; }
我的领域模型与我的 LINQ 对象具有完全相同的属性,我将这些属性复制到如下:
Models.UserModel user = new Models.UserModel();
user.Username = User.Username;
user.FirstName = User.FirstName;
user.LastName = User.LastName;
user
我的Models.UserModel
对象在哪里,User
我的 LINQ 对象是从 User 数据库表映射的。
由于我的域模型与我的 LINQ 对象完全相同,我将这些数据传输到域模型有什么好处,或者我可以在我的视图模型中使用 LINQ 对象,例如:
public User user { get; set; }
public List<Country> countries { get; set; }
使用领域模型有什么好处?这纯粹是为了与数据库 LINQ 对象松散耦合吗?
如果使用域模型有优势,那么如何最好地在我的 MVC 应用程序中构建它们?
它们应该在“Models”文件夹级别完全拆分(例如子文件夹“DomainModels”和“ViewModels”)还是重合(例如“UserEditViewModel.cs”和“UserDomainModel.cs”)。