Asp.net mvc 3 结合使用UIHint和linqtosql生成的类
我使用LINQtoSQL生成一个dbml文件,其中包含我的数据库表的数据库模型。我想使用UIHint让MVC在编辑模式下以下拉列表或复选框的形式显示一些字段。但是如果我更改了文件,如果重新生成,它将丢失。我应该如何解决这个问题?我是MVC的新手,还在学习。我已经为所有CRUD元素设置了一个带有视图的控制器,但现在我正在微调,遇到了这个问题。如果要直接使用实体,应该创建一个分部类并在其中添加注释。这样,当重新生成模型时,您不会丢失注释。因为Linq to SQL自动生成分部类,所以您需要创建分部“伙伴类”,在其中添加数据注释。buddy类镜像自动生成的类中需要修改的部分。将它们与[MetadataType(typeof(BuddyClassName))]绑定在一起,在编译项目时,部分buddy类和自动生成的部分类将合并在一起 例如:Asp.net mvc 3 结合使用UIHint和linqtosql生成的类,asp.net-mvc-3,linq-to-sql,c#-4.0,asp.net-4.0,Asp.net Mvc 3,Linq To Sql,C# 4.0,Asp.net 4.0,我使用LINQtoSQL生成一个dbml文件,其中包含我的数据库表的数据库模型。我想使用UIHint让MVC在编辑模式下以下拉列表或复选框的形式显示一些字段。但是如果我更改了文件,如果重新生成,它将丢失。我应该如何解决这个问题?我是MVC的新手,还在学习。我已经为所有CRUD元素设置了一个带有视图的控制器,但现在我正在微调,遇到了这个问题。如果要直接使用实体,应该创建一个分部类并在其中添加注释。这样,当重新生成模型时,您不会丢失注释。因为Linq to SQL自动生成分部类,所以您需要创建分部“
- 您的命名空间是“Project.Models”
- 您的Linq到Sql类称为“产品”
如果我这样做了,我可以使用相同的对象名并合并这两个声明吗?非常感谢!由于障碍,我花了一些时间阅读你的文章,但今天,我用了你的例子,效果很好。我将阅读文章,为下拉控件创建自定义模板。我在几周前找到了创建它们的方法,所以我想我会再次找到它们。我没有名声,所以我不能给你投票。欢迎你。我发现这个网站在我自己的项目中非常有价值。
using System.ComponentModel.DataAnnotations;
namespace Project.Models
{
[MetadataType(typeof(ProductsMeta))]
public partial class Products
{
// You can extend the products class here if desired.
public class ProductsMeta
{
// This is a Linq-to-Sql Buddy Class
// In here you can add DataAnnotations to the auto-generated partial class
[Key]
public int ProductKey { get; set; }
[Display (Name = "Product Name")]
[Required(ErrorMessage = "Product Name Required")]
[StringLength(255, ErrorMessage = "Must be under 255 characters")]
public string ProductName { get; set; }
[UIHint("MultilineText")]
public string Description { get; set; }
}
}
}