处理 LINQ to SQL 连接中的匿名类型
LINQ to SQL 连接对于从多个表中检索数据非常强大。 但是,从这些连接直接返回匿名类型可能会导致类型不匹配,尤其是在使用非泛型方法时。
假设我们有两个表:“Dogs”(Name、Age、BreedId)和“Breeds”(BreedId、BreedName)。 如果您返回 IQueryable<Dog>
.
当您尝试在 BreedName
语句中使用匿名类型将 select
包含在结果中时,就会出现问题。这通常会导致与类型相关的错误。
优雅的解决方案:自定义类
一种更易于维护的方法是定义一个可重用的类来表示组合数据,而不是为每个查询创建新的自定义类型。 对于此示例,我们将创建一个包含 DogWithBreed
对象和 Dog
字符串的 BreedName
类。
通过修改查询以在 DogWithBreed
语句中使用此 select
类,您可以实现类型安全且可扩展的解决方案。这避免了匿名类型的复杂性,同时保持了灵活性。 结果是强类型的 IQueryable<DogWithBreed>
,使您的代码更干净且更易于维护。
以上是如何从 LINQ to SQL 连接返回匿名类型结果而不出现类型不匹配?的详细内容。更多信息请关注PHP中文网其他相关文章!