Я не уверен, что это лучший сформулированный вопрос, но я хотел добиться того, чтобы у меня было 99% объекта из базы данных. В этом примере я использую AnonymousList, чтобы просто получить несколько столбцов из SQL, а затем преобразовать его в объект Entity.
Я расширил объект со свойством Size, чтобы иметь возможность назначать размер объекта в базе данных.
public partial class SzkolenieMaterialyPrzedmiotowe {
public int? Size { get;
set;
}
}
Вот код, который поможет
using (var context = new EntityBazaCRM(Settings.sqlDataConnectionDetailsCRM))
{
var anonimowaLista = context.SzkolenieMaterialyPrzedmiotowes.Where(d => d.SzkolenieID == szkolenieId).Select(d => new
{
d.MaterialyPrzedmiotoweID,
d.MaterialyPrzedmiotoweTyp,
Size = SqlFunctions.DataLength(d.MaterialyPrzedmiotowePlik),
d.MaterialyPrzedmiotoweOpis
}).AsEnumerable(); // anonymous list created to get only few columns
var listaSzkolenieMaterialyPrzedmiotowe = anonimowaLista
.Select(d => new SzkolenieMaterialyPrzedmiotowe
{
MaterialyPrzedmiotoweID = d.MaterialyPrzedmiotoweID,
MaterialyPrzedmiotoweTyp = d.MaterialyPrzedmiotoweTyp,
MaterialyPrzedmiotoweOpis = d.MaterialyPrzedmiotoweOpis,
Size= d.Wielkosc,
}).ToList(); // list based on anonymous list
objectListViewMaterialySzkoleniowe.SetObjects(listaSzkolenieMaterialyPrzedmiotowe);
}
Как я могу заставить Size на самом деле отображать себя после преобразования в КБ (Helpers.ConvertBytesToKilobytes(Size ?? 0);
), чтобы он стал строкой с добавлением КБ после него, чтобы я мог показать его в ObjectListView вместо значения int?
Я пытался сделать это так, но, похоже, это не удалось ..
public partial class SzkolenieMaterialyPrzedmiotowe {
public int? Size{ get;
set;
}
public string SizeToString
{
get
{
return Helpers.ConvertBytesToKilobytes(Size ?? 0);
}
set {
}
}
}