Frage

Wie kann ich unter Codes kürzer als früher? Ich brauche kurze und einfache Methode: Ich möchte nicht foreach-Schleife verwenden, weil ich einen Wert haben.

  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();

            }
        }

    }

Wie String-Wert anstelle von "var DepartmanName"

verwenden,
War es hilfreich?

Lösung

So etwas wie:

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

oder:

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

Andere Tipps

Ist das, was Sie zu tun versuchen?

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

Die SingleOrDefault wird der Name oder null zurück, wenn die Abteilung nicht beendet.

Update:

  • Scheint, wie Sie im Moment braucht, kommentierte die Erste Methode als ykaratoprak zu verwenden. Aber nach dieser Beitrag die Single / SingleOrDefault wird in Entity Framework 4.0 hinzugefügt werden.

Sie können „FirstOrDefault“ benutzen, die in dem aktuellen 3.5 Framework zur Verfügung steht. Ich denke, es ist mit 3.0 enthalten sein können, aber ich bin nicht sicher. Ich denke, es wird null zurück (im Gegensatz zu einem leeren String im Gegensatz), wenn das Element nicht gefunden wird .... aber Sie werden feststellen, dass verdoppeln wollen überprüfen.

string name = (von d in staffContext.Departman                                 wo d.ID == selectedDepartman                                 wählen d.Name) .FirstOrDefault ();

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top