【发布时间】:2009-09-11 19:06:31
【问题描述】:
我经常使用 linq2sql 生成的类并像这样创建一个简单的纯数据类
public class myentity
{
public Guid id { get; set; }
public string name { get; set; }
// etc
}
我没有将方法放在这些类中,我主要将它们用作辅助类,因此我可以很容易地序列化到/从 json 和其他类似操作。
我的问题是,在这种情况下我应该使用结构而不是类吗?
将其作为结构或多或少地定义为结构似乎是有意义的,但我不知道这里的性能是否理想,因为我经常将类从一个方法传递到另一个方法,而我没有'不需要大量的副本,因为结构是值类型。
我经常做的另一件事是使用 Linq2Sql 的延迟执行来返回我自己的轻量级版本的 Linq2Sql 类,而不是它们生成的那个。我不完全确定使用结构而不是类是否会对性能产生不利影响。
我如何使用延迟执行的一个例子是这样的
public IEnumerable<myentity> getEntities()
{
return from me in MyEntity return new myentity() { id = me.id, name = me.name };
}
public IEnumerable<myentity> getEntitiesThatStartWith(string s)
{
return from me in getEntities() where me.name.StartsWith(s);
}
【问题讨论】:
标签: c# .net linq-to-sql struct