将 UIHint 与 LINQ to SQL 生成的类结合使用
我使用 LINQ to SQL 生成一个 dbml 文件,其中包含数据库表的数据库模型。我想使用 UIHint 让 MVC 在编辑模式下将某些字段呈现为 DropDownLists 或 Checkboxes。但如果我更改文件,重新生成后它就会丢失。我应该如何解决这个问题?我对 MVC 还很陌生,仍在学习中。我已经设置了一个包含所有 CRUD 元素视图的控制器,但现在我正在微调,但遇到了这个问题。
I used LINQ to SQL to generate a dbml file which contains the database model for my database table. I want to use UIHint to let MVC present some fields as DropDownLists or Checkboxes in edit mode. But if I change the file, it will be lost if it's been regenerated. How should I solve that issue? I'm quite new to MVC and still learning. I've set up a controller with views for all CRUD elements, but now I'm finetuning and I'm running into this problem.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
由于 Linq-to-SQL 自动生成部分类,因此您需要创建一个部分“伙伴类”,在其中添加数据注释。您的好友类反映了您需要修改的自动生成类的部分。您可以使用 [MetadataType(typeof(BuddyClassName))] 将它们绑定在一起。当您编译项目时,部分伙伴类和自动生成的部分类将合并在一起。
在给出的示例中:
您的 Linq-To-Sql 类称为“Products”
这些文章非常有帮助:
Since Linq-to-SQL auto-generates partial classes, you'll need to create a partial 'buddy class' where you will add your Data Annotations. Your buddy class mirrors portions of the auto-generated class that you need to modify. You tie them together with [MetadataType(typeof(BuddyClassName))] The partial buddy class and the auto-generated partial class will be merged together when you compile your project.
In an example given that:
Your Linq-To-Sql class is called "Products"
These articles were very helpful:
如果您要直接使用实体,您应该创建一个分部类并在其中添加注释。这样,当模型重新生成时,您将不会丢失注释。
If you are going to use the entities directly you should create a partial class and add your annotations there. This way when the model is regenerated you will not lose your annotations.