使用下面的简单示例,使用Linq to SQL从多个表返回结果的最佳方法是什么?
说我有两张桌子:
Dogs: Name, Age, BreedId
Breeds: BreedId, BreedName
Run Code Online (Sandbox Code Playgroud)
我想用他们的狗归还所有的狗BreedName
.我应该让所有的狗使用这样的东西没有问题:
public IQueryable<Dog> GetDogs()
{
var db = new DogDataContext(ConnectString);
var result = from d in db.Dogs
join b in db.Breeds on d.BreedId equals b.BreedId
select d;
return result;
}
Run Code Online (Sandbox Code Playgroud)
但如果我想要品种的狗并尝试这个我有问题:
public IQueryable<Dog> GetDogsWithBreedNames()
{
var db = new DogDataContext(ConnectString);
var result = from d in db.Dogs
join b in db.Breeds on d.BreedId equals b.BreedId
select new
{
Name = d.Name,
BreedName = b.BreedName
};
return result; …
Run Code Online (Sandbox Code Playgroud) 在C#中你可以写:
var e = new { ID = 5, Name= "Prashant" };
assertEquals( 5, e.ID )
Run Code Online (Sandbox Code Playgroud)
但在Scala中我最终写道:
var e = (5, "Prashant")
assertEquals( 5, e._1 )
Run Code Online (Sandbox Code Playgroud)
Scala通过使用泛型来保持类型安全(就像C#一样),但是丢失了每个字段名称的可读性,例如我使用"_1"而不是"ID".
Scala中有这样的东西吗?