我开始了一个使用 EF 4.1 的 mvc 3 的新项目。服务层作为 WCF 托管,然后它有一个实体框架项目。建立的服务层使用带有静态方法的静态类与实体框架对话。
现在我认为静态不是一个“好主意”更难进行单元测试并且不允许多态等......我的团队领导说“静态的原因是它不会打开一堆与实体框架的连接”这对我来说似乎不正确......
这是一个使用 Linq 从 EF 获取数据的示例类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using PM.DAL;
using PM.DomainModel;
using PM.DomainModel.Staffing;
using PM.Service.DataMapper;
using PM.DomainModel.Enums;
namespace PM.Service
{
public static class Staffing
{
public static List<HabMatrixSchedule> GetDefaultHabMatrixSchedule()
{
var query = new List<HabMatrixSchedule>();
using (var ctx = new DDDPROGRAM_MONITORING_DBEntities())
{
query = (from ad in ctx.lkptblDEFAULT_RESOURCE_ALLOCATION_DETAIL
join hl in ctx.lkptblHOUR_LOOKUP on ad.HOUR_LOOKUP_ID
equals hl.HOUR_LOOKUP_ID
select new HabMatrixSchedule()
{
DEFAULT_RESOURCE_ALLOCATION_DETAIL_ID = ad.DEFAULT_RESOURCE_ALLOCATION_DETAIL_ID,
HOUR_LOOKUP_ID = hl.HOUR_LOOKUP_ID,
WEEKDAY_CATEGORY_VALUE_ID = ad.WEEKDAY_CATEGORY_VALUE_ID,
HOUR_START = hl.HOUR_START,
HOUR_END = hl.HOUR_END,
Resource_Count = ad.RESOURCE_COUNT,
CurrentWeekDayTime = new WeekDayTime(ad.WEEKDAY_CATEGORY_VALUE_ID, hl.HOUR_LOOKUP_ID)
}).ToList();
return query;
}
}
}
}