Jos*_*mez 4 .net c# entity-framework visual-studio-2010
所以,我开始使用EF,我正在开发一个使用它作为ORM的应用程序.问题是我没有太多时间深入研究文档(我计划,在适当的时候),我有点迷失在某些事情上.例如,我有这两个查询:
public static int GetNextPadlockNumber()
{
LockersDBEntities1 entities = new LockersDBEntities1();
var query = (from p in entities.PadLocks select p.PadlockNumber).DefaultIfEmpty(0).Max();
return (int)query + 1;
}
public static Data.PadLock GetPadLockByNumber(int number)
{
Data.LockersDBEntities1 entities = new LockersDBEntities1();
var query = (from p in entities.PadLocks where p.PadlockNumber == number select p).FirstOrDefault();
return query;
}
Run Code Online (Sandbox Code Playgroud)
和
public static int GetNextLockerNumber()
{
LockersDBEntities1 entities = new LockersDBEntities1();
var query = (from l in entities.Lockers select l.LockerNumber).DefaultIfEmpty(0).Max();
return (int)query+1;
}
public static Data.Locker GetLockerByNumber(int number)
{
Data.LockersDBEntities1 entities = new LockersDBEntities1();
var query = (from l in entities.Lockers where l.LockerNumber == number select l).FirstOrDefault();
return query;
}
Run Code Online (Sandbox Code Playgroud)
事情是他们完全相同的查询.没有任何方法可以做到这一点,而无需指定我想要一个储物柜或挂锁?先谢谢大侠.
您可以使用LockerNumber和PadlockNumber作为身份自动增量字段,因为这是您正在做的事情,然后将它们命名为相同(例如Id).
这样就不再需要"获取下一个更衣室号码",因为插入的每个新实体都将获得下一个可用的数字,并且使用Repository模式,您可以将这些方法作为Base Repository类中的常用方法,如下所示:
public IEntity GetEntityById(int number)
{
return ObjectSet.Single(x => x.Id == number);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |