Я только начал изучать Linq, и я пытаюсь сопоставить таблицу базы данных с классом, но я не могу заставить его работать с частным конструктором.Как я могу использовать iQueryable в классе с частным конструктором?
Мой код:
namespace LinqTest
{
using System.Collections.Generic;
using System.Data.Linq;
using System.Data.Linq.Mapping;
using System.Linq;
[Table(Name = "tblCity")]
public class City
{
private City()
{
}
[Column(IsPrimaryKey = true, Name = "CityId")]
public int Id { get; private set; }
[Column(Name = "CityName")]
public string Name { get; private set; }
public static List<City> GetList()
{
var dataContext = new DataContext(Database.ConnectionString());
var cities = dataContext.GetTable<City>();
var iQueryable =
from city in cities
select city;
return iQueryable.ToList();
}
}
}
Я также попытался отображение на новый экземпляр:
var list = new List<City>();
foreach (var iCity in iQueryable)
{
var city = new City
{
Id = iCity.Id,
Name = iCity.Name
};
list.Add(city);
}
return list;
Что я могу сделать, чтобы сделать эту работу? Я открыт для альтернативных методов. Thanks
Спасибо, это огромная помощь. Есть ли способ избежать второго отображения в цикле foreach? – user2078938
Будьте более ясны пожалуйста. Избегать второго отображения - это средний дублирующий город? –
Если вам нужно избегать дублирования, посмотрите этот [пример] (http://stackoverflow.com/questions/1606679/remove-duplicates-in-the-list-using-linq). –