【问题标题】:ASP .NET MVC + LINQ Generated Classes + DataAnnotationsASP .NET MVC + LINQ 生成的类 + DataAnnotations
【发布时间】:2011-01-14 20:25:57
【问题描述】:

我有一个问题,我希望你能帮助我。好的,我将尝试描述我的情况:

我已经创建了数据库。 添加了表格“订单”。 然后在 dbml 文件中生成 LINQ 类。

现在,我在控制器中创建了操作,我正在尝试为一个或我的 Order 类属性(客户端名称)设置 [DisplayName("Other name")]。所以,看看这个:

/Core/Extansions.cs

namespace SUPNew.Core
{
    public static class Extansions
    {

    }

    [MetadataType(typeof(OrderMetaData))]
    public partial class Order
    {
    }

    public class OrderMetaData
    {
        [DisplayName("ФИО клиента")]
        public string ClientFIO { get; set; }
    }
}

/视图/管理器/AddOrder.aspx

    <legend>Fields</legend>

    <div class="editor-label">
        <%: Html.LabelFor(model => model.ClientFIO) %>
    </div>
    <div class="editor-field">
        <%: Html.TextBoxFor(model => model.ClientFIO) %>
        <%: Html.ValidationMessageFor(model => model.ClientFIO) %>
    </div>

/控制器/ManagerController.cs

using SUPNew.Core;

/模型/SUPNew.dbml

    public partial class Order : INotifyPropertyChanging, INotifyPropertyChanged
    {
...
        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ClientFIO", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
        public string ClientFIO
        {
            get
            {
                return this._ClientFIO;
            }
            set
            {
                if ((this._ClientFIO != value))
                {
                    this.OnClientFIOChanging(value);
                    this.SendPropertyChanging();
                    this._ClientFIO = value;
                    this.SendPropertyChanged("ClientFIO");
                    this.OnClientFIOChanged();
                }
            }
        }

所以,也许我忘了做点什么?我需要在部分类中选择的 LabelFor(model => model.ClientFIO) 中显示 ClientFIO 的 DisplayName。

谢谢帮助。


如果我更改 .dbml 文件 - 像这样添加 [DisplayName("OtherName")]:

[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ClientFIO", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
[DisplayName("Other name")]            
public string ClientFIO
            {
                get
                {
                    return this._ClientFIO;
                }
                set
                {
                    if ((this._ClientFIO != value))
                    {
                        this.OnClientFIOChanging(value);
                        this.SendPropertyChanging();
                        this._ClientFIO = value;
                        this.SendPropertyChanged("ClientFIO");
                        this.OnClientFIOChanged();
                    }
                }
        }

它有效,但是当我尝试制作部分课程时 - 不是。有人可以帮我处理 LINQ 生成类的部分类吗?

【问题讨论】:

标签: asp.net asp.net-mvc linq data-annotations


【解决方案1】:

好的,以前是这样的,是不行的:

/Core/Extansions.cs(命名空间 SUPNew.Core)(公共部分类 Order)
/Models/SUPNew.dbml(命名空间 SUPNew.Models) (public partial class Order)(生成)

然后,当我这样替换时:

/Models/Extansions.cs(命名空间 SUPNew.Models)(公共部分类 Order) /Models/SUPNew.dbml(命名空间 SUPNew.Models)(公共部分类 Order)(生成)

它开始起作用了。但是,问题出在哪里?我在任何地方都使用了所有并在 View.aspx 中导入。

我需要让它像第一个例子一样工作:

/Core/Extansions.cs(命名空间 SUPNew.Core)(公共部分类 Order)
/Models/SUPNew.dbml(命名空间 SUPNew.Models) (public partial class Order)(生成)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-08
    • 1970-01-01
    • 2011-05-02
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    • 2020-09-27
    相关资源
    最近更新 更多