【问题标题】:Entity Framework - Error on Data-Bound Custom Field (Property Not Found)实体框架 - 数据绑定自定义字段错误(未找到属性)
【发布时间】:2015-01-28 04:04:44
【问题描述】:

使用实体框架,我使用“显示友好”版本的属性扩展了一个实体类,在本例中,CommissionRate 是一个实体属性,CommissionRateDisplay 是我自己的自定义属性。在绑定的 Web 窗体控件中,我想显示一个整数百分比 3,但在数据库中我想存储为小数 0.03

我在名为 CommissionRateDisplay 的部分类中创建了一个自定义字段,其中包含 getset 方法,如下所示:

partial class SalesOrder
{
    public double CommissionRateDisplay
    {
        get { return (this.CommissionRate ?? 0) * 100; }
        set { this.CommissionRate = value / 100; }
    }
}

保存实体时,出现以下错误:

A property named 'CommissionRateDisplay' was not found on the entity during an insert, update, or delete operation. Check to ensure that properties specified as binding expressions are available to the data source.

我只想绑定我的自定义属性并将修改后的原始属性保留在数据库中。 getting 的值可以正常工作,但 setting 不行。

我是以正确的方式解决这个问题,还是有更好的方法?抱歉,如果这是重复的;我找不到清晰简洁地解决问题的解决方案。

【问题讨论】:

    标签: c# asp.net entity-framework webforms


    【解决方案1】:

    您需要向自定义属性添加 [NotMapped] 注释,以让 Entity Framework 知道您不希望它成为表中的列。

    【讨论】:

    • 这似乎正是我所需要的。不幸的是,我使用的是非常旧的 EF 版本(我认为它是 4.0),所以 NotMapped 属性不是内置的。据我所知,这只是添加对 EF 程序集的引用的问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    • 2020-11-21
    相关资源
    最近更新 更多