【问题标题】:Help with asp.net mvc data access methods帮助 asp.net mvc 数据访问方法
【发布时间】:2011-03-27 09:09:31
【问题描述】:

在我的应用程序中,我现在面临在哪里执行一些计算的几个问题。 我正在使用存储库模式...(至少尝试) 这是它的工作原理.. 每个员工都有很多 Physical_Exams.. 对于每个员工,我需要能够获得他的 Initial Body_Mass_Index 和他的 Last Body_Max_Index ...当然每个考试都有一个 Date 属性...所以对于每个员工我应该可以得到这些值

所以我的问题是......应该像这样调用适当的方法

    Employee employee=EmployeeRepository.GetbyId(id);
    float initial_mass_index=employee.GetInitialMassIndex();

还是这样?

    Employee employee=EmployeeRepository.GetbyId(id);
    float initial_mass_index=EmployeeRepository.GetInitialMassIndex(employee);

我认为值得一提的是,每个员工都有一家公司,因此对于每个公司,我还需要计算其员工的平均初始质量指数......问题是一样的......计算这个平均值的方法应该在 Company Partial 类或 CompanyRepository 中定义??

请帮忙!

【问题讨论】:

    标签: asp.net asp.net-mvc data-access


    【解决方案1】:

    就个人而言,我会一起删除该方法,并将其替换为 Employee 类型的公共属性:

    float initialMassIndex = employee.InitialMassIndex;
    

    它是一个属性的事实使这个决定更加明确。它是属于 Employee 的一条信息,而不是应该从 Object Repository 中获取的信息。

    【讨论】:

    • 这是否意味着更改我的数据库?我的 Employee 表没有名为 InitialMassIndex 的字段......员工有体检......从这些体检中我得到他们的初始质量指数和他们当前的质量指数
    • @NachoF - 如果这是实体框架(或 LINQ to SQL)生成的类,您可以使用部分类在单独的文件中添加更多代码。这允许您在不更改数据库的情况下添加属性。如果该值是即时计算的,我会考虑将属性名称更改为简单的 MassIndex。
    • 我仍然不明白如何在不调用数据库的情况下设置此属性的值。请记住,initialMassIndex 和 CurrentMassIndex 是根据体检日期计算的员工已经采取了.. 它的 LinqToSql 顺便说一句
    猜你喜欢
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多