【问题标题】:Using same classes for items and lists对项目和列表使用相同的类
【发布时间】:2017-12-14 01:27:27
【问题描述】:

查看 .net 网站项目的代码,大多数类已创建具有广泛的属性。这些随后被用作不使用从 SQL 检索到的所有属性的列表视图和中继器的数据源。

例如,将 List(Of Contact) 绑定到转发器,但转发器只需要 id、昵称、全名、邮政编码

item的详细分类:

Public Class Contact
Private _id as integer = 0
Private _nickname As String = ""
Private _email As String = ""
Private _website As String = ""
Private _titleID As Integer = 1
Private _fullname As String = ""
Private _address1 as string = ""

还有 20 个变量。

编辑:后跟27个属性、构造函数和共享方法完成类(参考plutonix)

当绑定到一个对象时,你能有选择地从 SQL 中检索一些属性吗?或者,对于使用较少属性的列表,您是否需要单独的类?没有使用 Linq。

【问题讨论】:

  • 这个范围很广,几乎需要教程。但是a)这些东西都不是属性,b)它们都不会在类外可见,因为它们是私有的。请阅读How to Ask 并采取tour

标签: vb.net class objectdatasource


【解决方案1】:

当然,您可以只设置您想要的属性,但请记住,其余属性将具有其类型的默认值。

【讨论】:

  • 谢谢 - 所以如果 SQL 字段 'website' 是 nvarchar(75) 但在类中默认为零长度字符串,这是否意味着列表将具有 'website' 的零长度属性
  • 这意味着列表将具有 String 属性,默认值为 String - Nothing(C# 中为 null)。但是,如果您有一些属性,例如 DateTime,它将具有 DateTime.MinValue (1.1.0001) 的默认值,这会在内存中占用一些空间,并且在使用大量项目时必须考虑这一点 (100 000+)
  • 另外,数据如何从 DB 映射到 .NET 类也很重要,也就是您使用的 O/R 映射器。
  • 这是从数据库中获取数据的非常古老的技术。我建议您了解 O/R 映射器。
猜你喜欢
  • 2015-10-08
  • 1970-01-01
  • 2022-10-02
  • 2022-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-05
  • 1970-01-01
相关资源
最近更新 更多