我有一个 LINQ to SQL 实体,我将对其进行序列化并通过 Web 服务调用以 JSON 形式返回。
该实体有一个属性我不希望被序列化。为此,通常有 [ScriptIgnore]
属性,如果我手动将其添加到 designer.cs
文件中,它的工作方式正是我想要的。
现在,由于设计器文件是自动生成的,我希望不必手动编辑它,因为任何更改都可以轻松被覆盖。因此,我的问题是:是否有任何方法可以直接在 DBML 编辑器中注释该属性,以便在序列化时将其排除?
如果答案是否定的;有没有比在序列化属性之前手动将属性设置为 null 或返回除该属性之外相同的匿名类型更简洁的解决方案?在 MVC.NET 中,是否有任何方法可以将参数传递给 JSON()
方法来修改其行为?
如果之前有人问过这个问题,我深表歉意 - 我希望这是一个常见问题,但我找不到类似的人。
最佳答案
所有 DBML 生成的类都是部分类,以便您可以在另一个文件中扩展它们。 DBML 设计器只会更改 Designer.cs
文件中的类。从 DBML 设计器中删除该属性并将其放入另一个文件的分部类中。然后,您可以添加任何您想要的额外属性,DBML 设计者将不理会它。您必须手动管理此属性并更新它以匹配任何数据库更改,但我认为如果它解决了您的问题,这可能是值得付出的代价。
关于linq-to-sql - LINQ to SQL 中的 ScriptIgnore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3448438/