문제

이전보다 코드 아래에서 어떻게 짧게 할 수 있습니까? 짧고 간단한 방법이 필요합니다. 값이 하나 있기 때문에 Foreach Loop을 사용하고 싶지 않습니다.

  public partial class Test : System.Web.UI.Page
    {
        StaffManagementEntities staffContext;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                LoadStaffPersonel();
            }
        }

        void LoadStaffPersonel()
        {
            int selectedDepartman = Convert.ToInt32(Request.QueryString["SelectedDepartmanID"]);
            string name="";
            using (staffContext = new StaffManagementEntities())
            {

                var DepartmanName = from d in staffContext.Departman
                                    where d.ID == selectedDepartman
                                    select d;
                foreach (Departman d in DepartmanName)
                {
                    name = d.Name;
                }

                ObjectResult<StaffsPersonel> personalData = staffContext.GetPersonelData(name);
                gvPersonel.DataSource = personalData;
                gvPersonel.DataBind();

            }
        }

    }

"var liffmanname"대신 문자열 값을 사용하는 방법

도움이 되었습니까?

해결책

같은 것 :

string name = (from d in staffContext.Departman
               where d.ID == selectedDepartman
               select d.Name).First();

또는:

string name = staffContext.Departman.Where(d=>d.ID == selectedDepartman)
                  .First().Name;

다른 팁

이것이 당신이하려는 일입니까?

string name = (from d in staffContext.Departman
                                where d.ID == selectedDepartman
                                select d.Name).SingleOrDefault();

그만큼 Singleordefault 부서가 종료되지 않으면 이름 또는 null을 반환합니다.

업데이트:

  • 현재 당신이 사용해야 할 것 같습니다. 첫 번째 방법 Ykaratoprak 댓글을 달았습니다. 그러나에 따르면 이 게시물 Single/Singleordefault는 Entity Framework 4.0에 추가됩니다.

현재 3.5 프레임 워크에서 사용할 수있는 "FirstOrdeFault"를 사용할 수 있습니다. 나는 그것이 3.0에 포함되었다고 생각하지만 확실하지 않습니다. 항목을 찾을 수없는 경우 (빈 문자열과 달리) NULL을 반환 할 것이라고 생각합니다 .... 그러나이를 두 번 확인하고 싶을 것입니다.

String name = (직원의 d에서 d에서 d d.id == selectedDepartman select d.name) .firstordEfault ();

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top