Что касается добавления свойства, вы можете использовать дополнительное частичное определение класса, чтобы добавить его в модель.Например,
//TheModel.cs
// file generated by tool
public partial class TheModel
{
// ...
}
А затем ваше расширение
//TheModelCustom.cs
public partial class TheModel
{
public bool IsWorkingTime
{
get
{
// your (hopefully inexpensive) logic
}
}
}
Если у вас возникнут проблемы, это часть о желании использовать свойство в Linq.Если вы хотите использовать его для построения запроса к базе данных , вам может не повезти.Поставщик не сможет перевести свойство и его логику в соответствующий SQL.Однако, если вы можете обойтись с фильтрацией / проектированием после БД / и т. Д., Вы можете использовать это свойство после того, как данные будут возвращены.
var results = (from model in db.TheModels
where /* some criteria */
select model) // <-- the part of the query that goes to the DB
.AsEnumerable()
.Where(m => m.IsWorkingTime); // <-- happens in memory