我有一个使用Fluent nHibernate
作为其数据后端的解决方案,我使用ASP.NET MVC 3.0
作为我的前端。我认为我使用Model View ViewModel
方法解决问题很聪明,但它对我有点适用...
这是我的模特。
class Alpha {
virtual Guid Id { get; set; }
virtual string Name { get; set; }
virtual IList<Delta> ListOfItems { get; set; }
}
class Delta {
virtual Guid Id { get; set; }
virtual string Name { get; set; }
// some other properties
}
效果很好。现在这是我的AlphaViewModel
class AlphaViewModel {
string Name { get; set; }
IList<Delta> ListOfItems { get; set; }
}
我正在使用视图模型以避免与代理发生冲突。因为我知道第一个问题是“你的视图模型看起来就像你的模型,所以没有必要使用它”。这很好,但现在我的问题来了。
想象一下以下过程..
现在我们遇到了一个新问题。数据库并不真正知道它正在发生变化的Id
。
我可以向ViewModel添加Id
,但这并不能解决所有问题。我已经看到人们如何通过添加新项目来处理这种情况,但我找不到任何能够向他们展示删除的好解决方案。任何人都可以提供一些见解吗?
我知道这个问题与nHibernate无关,但由于我的部分推理确实涉及nHibernate代理,我将其作为标签条的一部分包含在内,因为它可能是解决方案/问题的一部分。
答案 0 :(得分:1)
更好地设计表单。您是否为每个项目都有“删除”链接或复选框?
(imho这是一个不存在的问题)