Как я могу trasfrom следующую инструкцию SQL в LINQвыберите случай LINQ в C#
select AdsProperties.AdsProID,
AdsProperties.IsActive,
AdsProperties.Name,
case
when AdsProperties.ControlType =1 then -- TextBox
'Textbox'
when AdsProperties.ControlType =2 then -- DropDown
'Dropdown'
when AdsProperties.ControlType =3 then -- ConboBox
'ComboBox'
else -- RadioButton
'RadioButtont'
end as ControlType
from CLF.utblCLFAdsPropertiesMaster as AdsProperties
Я попытался это
var query = from AdsProperties in db.utblCLFAdsPropertiesMasters
select new
{
AdsProperties.AdsProID,
AdsProperties.Name,
AdsProperties.IsActive,
ControlType = AdsProperties.ControlType == 1 ? (int?)"TextBox" : null,
ControlType = AdsProperties.ControlType == 2 ? (int?)"Dropdown" : null,
ControlType = AdsProperties.ControlType == 3 ? (int?)"ComboBox" : null,
ControlType = AdsProperties.ControlType == 4 ? (int?)"RadioButton" : null)
};
dt = query.CopyToDataTableExt();
, но я получаю эту ошибку
`an anynomous type cannot have multiple properties with the same name`
Я знаю, что это может быть легко и просто. Однако, будучи новым в linq, у меня нет практического опыта, чтобы справиться с этим. Любая помощь будет оценена по достоинству. Заранее спасибо.
Вы можете использовать отдельный метод для оператора switch и назначить его свойству ControlType.e.g. 'ControlType = GetControlType (AdsProperties.ControlType)' –
Почему бы не использовать Enum для ControlType вместо int? – Alex
Волшебные струны злы. – Aron