Entity Framework selection query

▼魔方 西西 提交于 2019-12-06 07:21:48

问题


I am making a simple application for insert, update, delete, select data with Entity Framework
I already made insertion, deletion and select all data.

Now I want to select with where condition with filter of two fields
For ex : I have table with

userid
username
password
email

Now need selection like where email = "" and password = ""

I know how to write query in SQL but having not clues with entity framework.
Also need to store this result in datatable and looping solution both for learning purpose.
This can help many beginners


回答1:


Using Linq To Entities with lambda expression:

var result = dBContext.Account.Where(a=> a.email == "" && a.password =="").ToList();

Using Linq To Entities the less fancy way:

var result = (from a in dBContext.Account
              where a.email == "" && a.password ==""
              select a).ToList();

Lambda expressions are used most of the time. Some people find lambda's less readable. I think it's more a personal taste that depends from your background.

EDIT:

dbContext should be replaced by the name you gave your dbContext/Entities when setting up your Entitiy framework EDMX or Code First Classes.

Account should be replaced by the name of your table/Entity

To loop and edit the results you can do:

foreach(var account in results)
{
   //do something with the properties
   account.email = "test@updated.com"
}

//store the changes again in the db
dbContext.SaveChanges();



回答2:


Use linq ex:

List<User> result = dbContext.Users.Where(o=> o.email == "" && o.password=="").ToList();

foreach(User u in result)
{
// do stuff
}

User u = new User();
u.Email = "mail@mail.com";

dbContext.Users.Add(u);
dbContext.Save(); //I think its Save()..



回答3:


Have to use Linq query like

var data= dBContext.Account.Where(a=> a.email == "" && a.password =="").ToList();

.ToList() will give your entire data that comes under your where condition or filter. Now for that you return DataTable and easily apply a for condtion based on your DataTable values.




回答4:


DataTable tempData = (DataTable)grdRecords.DataSource;

var query = from r in tempData.AsEnumerable()
            where r.Field<string>("UserName") != "TestUsername" &&
                  r.Field<string>("Password") != "TestPassword"
            select r;

DataTable newDT = query.CopyToDataTable();



回答5:


use linq query as follows

IList<Users> Users = dbContext.Users.Where(x=> x.email == "" && x.password=="").ToList();

then if you want to convert into DataTable just call following generic method do convert it

        public DataTable ToDataTable<T>(IList<T> data)// T is any generic type
        {
            PropertyDescriptorCollection props = TypeDescriptor.GetProperties(typeof(T));

            DataTable table = new DataTable();
            for (int i = 0; i < props.Count; i++)
            {
                PropertyDescriptor prop = props[i];
                table.Columns.Add(prop.Name, prop.PropertyType);
            }
            object[] values = new object[props.Count];
            foreach (T item in data)
            {
                for (int i = 0; i < values.Length; i++)
                {
                    values[i] = props[i].GetValue(item);
                }
                table.Rows.Add(values);
            }
            return table;
        }



回答6:


You can try this

databasenameEntities db = new databasenameEntities ();

tablename exist= db.tablename.where(p=>p.email=="txtemail.text" && p.password=="txtpassword.text");

if(exist.count>0)

{

txtuserid.text=Convert.toInt32(exist.userid);

txtusername.Text=exist.username;

....

.....

db.saveChanges();

}

hope this may helpful.



来源:https://stackoverflow.com/questions/18718392/entity-framework-selection-query

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!