Tôi có một số LINQ to sql phương pháp và khi nó truy vấn nó trả về một số loại vô danh.Làm cách nào để trả lại bộ sưu tập danh sách chung trong C#?
Tôi muốn trả lại loại ẩn danh đó trở lại lớp dịch vụ của mình để thực hiện một số logic và nội dung trên đó.
Tôi không biết cách trả lại.
Tôi nghĩ tôi có thể làm điều này
public List<T> thisIsAtest()
{
return query;
}
nhưng tôi nhận được lỗi này
Error 1 The type or namespace name 'T' could not be found (are you missing a using directive or an assembly reference?)
Vì vậy, không chắc chắn những gì tôi đang lắp ráp thiếu hoặc nếu đó là ngay cả những trường hợp.
Cảm ơn
EDIT
Ok vấn đề đầu tiên của tôi đã được giải quyết nhưng bây giờ tôi có một vấn đề mới mà tôi không chắc chắn làm thế nào để sửa chữa kể từ khi tôi không biết nhiều về các loại vô danh.
tôi nhận được lỗi này
thể không mặc nhiên chuyển đổi loại 'System.Collections.Generic.List' để 'System.Collections.Generic.List
Dưới đây là truy vấn
DbContext.Table.Where(u => u.Table.UserId == userId && u.OutOFF != 0)
.GroupBy(u => new { u.Table.Prefix })
.Select(group => new { prefix = group.Key,
Marks = group.Sum(item => (item.Mark * item.Weight)/item.OutOFF) })
.ToList();
Chỉnh sửa 2
public class ReturnValue
{
string prefix { get; set; }
decimal? Marks { get; set; }
}
public List<ReturnValue> MyTest(Guid userId)
{
try
{
var result = dbContext.Table.Where(u => u.Table.UserId == userId && u.OutOFF != 0).GroupBy(u => new { u.Table.Prefix })
.Select(group => new { prefix = group.Key, Marks = group.Sum(item => (item.Mark * item.Weight)/item.OutOFF) }).ToList();
return result;
}
catch (SqlException)
{
throw;
}
select có này trong đó
Anonymous Types:
a is new{string Prefix}
b is new{ 'a prefix, decimal? marks}
lý do tại sao bạn không thể xác định loại mới 'lớp ReturnValue {int prefix; dấu thập phân; } 'và sau đó trả về một' ReturnValue mới (....) 'thay vì một kiểu vô danh ?? –
Tôi cần một ví dụ. Tôi nhận được trợ giúp làm cho truy vấn này nó làm những gì tôi muốn nhưng nếu nó có thể được thay đổi hoặc một cái gì đó thêm vào để làm cho nó không vô danh tôi tất cả cho điều đó. – chobo2
Bạn không sử dụng mã tôi đã đề cập! Trong '.Select()', bạn cần sử dụng: '.Select (group => new RETURNVALUE {prefix = group.Key, ...' - đây là * NOT * những gì bạn có! Bạn đã không thêm ** TYPE ** được tạo ra trong .Select() - đó là vấn đề của bạn –