【问题标题】:Can you prevent LinqDataSource from setting a property?你能阻止 LinqDataSource 设置属性吗?
【发布时间】:2009-02-06 21:04:51
【问题描述】:

我有一个正在尝试更新的 Linq 2 SQL 对象。此对象的两个属性相互关联,设置一个设置另一个。

如果我这样做:

Foo.Code = 啤酒;

Foo.CodeID 属性将自动设置为 5(或其他值。)

问题是 LinqDataSource 设置 Foo.Code,然后立即设置 Foo.CodeID... 它没有绑定到任何东西,因为我们希望用户只设置 Code。这会立即将它们都设置回 null。

我知道我可以使用参数来设置默认值,但是有没有办法告诉 LinqDataSource 甚至不设置属性?

编辑:通过创建隐藏字段并在表单视图的 ItemUpdating 事件中为该字段分配正确的值来解决问题。仍然希望避免进行四次相同的查找...

【问题讨论】:

    标签: asp.net linq-to-sql linqdatasource


    【解决方案1】:

    是否可以选择将 Code 属性设为私有(在 dbml 中选择 Code 属性并在“属性”窗口中设置访问属性)并创建一个新的公共属性以供您更好地控制?

    我个人已经编写了一个生成器,可以为我生成必要的文件(如 sqlmetal),让我可以完全控制代码。如果您不喜欢生成的 dbml,也许这也是您的一个选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-02
      • 1970-01-01
      • 2010-11-01
      • 2010-11-21
      • 2010-12-24
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多