使用 LINQ to SQL 时如何指定/筛选应填充哪些表列?
我正在使用 LINQ to SQL,并有一个名为 Product 的数据库表,包含 20 列。 Product 表映射到 LINQ to SQL 元数据中的 Product 类。
我想使用 dbContext 并检索一些产品记录,但只填充 10 列,而不是全部 20 列。
如何指定应使用 LINQ to SQL(或 EF)返回/填充哪些列?
我知道一种方法是使用存储过程,但这就是这个问题的目的。
谢谢,
I'm using LINQ to SQL and have a database table called Product with 20 columns. The Product table is mapped to the Product class in the LINQ to SQL metadata.
I'd like to use my dbContext and retrieve some product records but only populating 10 columns not all 20 columns.
How would that be possible to specify which columns should be returned/populated with LINQ to SQL (or EF)?
I know one way would be using stored procedures but that's this question is about.
Thanks,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您通常为此使用匿名类:
只有您包含的字段才会被选择。如果您打算将此数据结构传递给其他函数或返回它,则需要子字段集的具体类定义,例如:
并且您可以在 Select 语句中初始化它:
我不建议半填充的做法一个现有的类。这会使您的状态空间变得不必要的复杂,并导致代码中出现更多错误。尝试在自己的类中包含较小的数据子集。
You usually use an anonymous class for that:
Only the fields you include will be selected. If you intend to pass this data structure to other functions or return it, you need a concrete class definition for sub field set, such as:
And you can initialize this in your Select statement:
I don't recommend the practice of half-populating an existing class. That makes your state space unnecessarily complex and allows more bugs in your code. Try to contain smaller subsets of data in their own classes.