linq-to-sql - LINQ to SQL 中的 ScriptIgnore

标签 linq-to-sql serialization

我有一个 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/

相关文章:

java - 如何序列化ArrayList中的对象?

c# - 反序列化触发函数

linq-to-sql - SQL 不会在 INSERT 错误时增加主键

serialization - oozie 上的 Avro Map-Reduce

c# - 使 Linq to Sql 使用 ISNULL 而不是 COALESCE 生成 T-SQL

c# - 如何使用 Linq To SQL 显示所有记录?

android - 新 Activity 的对象序列化

javascript - JQuery 表单序列化

c# - LINQ to SQL : Advanced queries against lists, 数组和对象列表

c# - 如何使用 itextsharp 获取 html 内容并将其转换为 PDF?