C#中静态嵌套类的替代方法,用于对类的公共方法进行分组
本文关键字:方法 用于 静态 嵌套 | 更新日期: 2023-09-27 18:26:27
我正在尝试创建一个可通过互联网访问的业务对象数据库层。
我想调用数据库访问器方法,如下所示:
_databaseHander.Employee.SelectBetweenDates(date1, date2);
_databaseHandler.PayDetails.SelectAll();
_databaseHandler.BusinessArea.InsertAll(businessAreaData);
通过HTTP调用,这将被转换为以下内容:
www.website.com/DatabaseObject/Employee/SelectBetweenDates/Date1=yyyyMMdd&Date2=yyyyMMdd
www.website.com/DatabaseObject/BusinessArea/InsertAll (will be sent as a post)
我不确定该怎么做。我预计它会是这样的:
public class DatabaseHandler
{
private DatabaseContext _context;
public DatabaseHandler(DatabaseContext context)
{
_context = context;
}
public static class Employee
{
public static IEnumerable<EmployeeData> SelectBetweenDates(DateTime date1, DateTime date2)
{
return _context.Select(x=>x.FromDate <=date1 && x.ToDate>=date2);
}
}
}
这似乎是对"静态"的滥用。。。我甚至不确定是否可以用这种方式进行编码。有人知道我该怎么做吗?
我尝试拆分方法调用的原因是,自动完成非常有用,例如键入_databaseHandler。不会为每个数据库对象返回4或5个方法。
为了更好的可读性,我还想将类拆分为分部类,以避免出现10000行的类。
创建一个单独的类,该类可以是非嵌套的,然后在DatabaseHandler
中有一个返回实例的属性。
然而,我不认为这实际上应该被称为Employee
,因为它显然不代表个人员工。它更像是一个EmployeeCollection
。老实说,您可能只返回一个IQueryable<EmployeeData>
(我假设这是基于LINQ的),然后在一个单独的静态类中添加扩展方法,以添加集合特定的查询。
Employee theEmployee = new Employee();
将为您提供一个可使用的Employee
对象。
有了这个,您可以从DataBaseHandler
更改Employee
类的值