亚音速3 LINQ投影匿名类型,但不集中类型
-
20-09-2019 - |
题
我对亚音速3/linq是新手,不知道我是否缺少明显的东西,但我认为我遇到了一个投影问题。我尝试执行最基本的查询,并仅在使用匿名类型时才能获得正确的结果。当我将匿名类型与常规类类型交换时,我将所有属性设置为null/Zero。我正在制作DAL类库,因此不幸的是,匿名类型不是一种选择。
摘要
using System;
using System.Linq;
using Fruits.Data;
namespace FruitTest {
class Program {
static void Main(string[] args) {
var db = new FruitsDB();
var fruits = from f in db.Fruits
select new FruitView {
MyFruitID = f.FruitID,
MyFruitName = f.FruitName,
};
foreach (var f in fruits) {
Console.WriteLine(f.MyFruitID + "\t" + f.MyFruitName);
}
}
}
public class FruitView {
public int MyFruitID { get; set; }
public string MyFruitName { get; set; }
}
}
因此,这不起作用(返回所有nulls/Zeros)
var fruits = from f in db.Fruits
select new FruitView {
MyFruitID = f.FruitID,
MyFruitName = f.FruitName,
};
这是预期的
var fruits = from f in db.Fruits
select new {
MyFruitID = f.FruitID,
MyFruitName = f.FruitName,
};
我的问题与 这个 和 这个, ,只有我什至没有加入;只是简单的选择。
任何线索都将不胜感激。
没有正确的解决方案
其他提示
没有真正的答案。我经常遇到这一点。保持分配顺序与阅读帮助顺序相同。 IE。在调试时间中,如果您看到查询文本并以从db读取列的顺序。然后将分配与QueryText中的SQL Select语句的顺序保持相同。解决问题中的9分中的10次。
反试试:
IList<FruitView> fruits = (
from f in db.Fruits
select new FruitView {
MyFruitID = f.FruitID,
MyFruitName = f.FruitName
}).ToList();
或者
IQueryable<FruitView> fruits =
from f in db.Fruits
select new FruitView {
MyFruitID = f.FruitID,
MyFruitName = f.FruitName
};
..和 foreach
和以前一样。
不隶属于 StackOverflow