2016-02-15 3 views
0

Я хочу получить 3 столбца из запроса linq, я хочу поместить 3 значения столбцов в свою сумку.Запрос Linq для получения нескольких столбцов в C# Entity Framework

Это мой код контроллера.

public ActionResult Create(ModelName ObjectName) 
{ 
    DocumentDeleteBAL DALObject = new DocumentDeleteBAL(); 
    int client_id = Convert.ToInt32(ModelName.client_id); 
    int emp_id = Convert.ToInt32(ModelName.emp_id); 
    int empcitizen_id = Convert.ToInt32(ModelName.empcitizen_id); 

    var tm = DALObject.GetDetails(client_id, emp_id, empcitizen_id); 
    return View(ObjectName); 
} 

Это мой код DAL.

public List<ModelName> GetDetails(int client_id,int emp_id,int empcitizen_id) 
{ 
    List<ModelName> del = (from c in db.ModelName 
          where c.clientid == client_id 
           && c.employeeid == emp_id 
           && c.empcitizenid == empcitizen_id 
          select c).ToList(); 
    return del; 
} 

Здесь я передаю 3 идентификатора и, если соответствует, я хочу отобразить имя клиента, имя сотрудника, национальность. Я застрял на этой линии

var tm = docdel.GetDetails(client_id, emp_id, empcitizen_id); 
+2

Оффтопик, но, пожалуйста, сделайте что-нибудь о своем наименовании. Я уже жалею парня, который должен поддерживать код после вас :( –

+0

Конечно, позвольте мне отредактировать ... –

+0

дайте мне знать, что у вас есть какие-либо проблемы. Я хочу вернуть имя_имя, emp_name, национальность, и я хочу скопировать детали в viewbag . –

ответ

0

Вы уже получаете полную информацию, все, что вам нужно сделать, это взять первый объект (из коллекции), так как она возвращается List<ts_upld_doc> и установить ViewBag что-то вроде этого : -

var tm = docdel.GetDetails(client_id, emp_id, empcitizen_id).FirstOrDefault(); 
if(tm != null) 
{ 
    ViewBag.Clientname = tm.Clientname; 
    ..and so on 
} 
+1

Да, я не знал о firstordefault() ... отлично работает –

0

если ваши GetDetails возвращать только один объект, то,

public ModelName GetDetails(int client_id,int emp_id,int empcitizen_id) 
{ 
    ModelName del = (from c in db.ModelName where c.clientid == client_id && c.employeeid == emp_id && c.empcitizenid == empcitizen_id select c).ToList(); 
    return del; 
} 

в контроллере,

var tm = docdel.GetDetails(client_id, emp_id, empcitizen_id); 

tm содержит вашу модель. Затем

viewbag. Clientname=tm. Clientname 
viewbag.employee name=tm.employee name 
viewbag.nationality=tm.nationality 
Смежные вопросы