1

我正在使用ASP.NET Web Forms/C#.

我研究了实施BLLDLL我的应用程序。

我发现很多人说 usingLinq To SQL代替了DAL自己。

因此,您应该在BLL类本身内部访问数据并实现业务逻辑。不确定它是否正确。

目前我有一个类CustomerBLL。我正在访问数据并在其中实现业务逻辑。

所以我的问题是,这是一个好方法吗?

我可以遵循这个吗?

另外,目前我只有一BLL门课,我应该.aspx每页只使用一门还是一门,或者将相似的页面组合在一起。

这是我的CustomerBLL.cs(仅包括几个功能)。

namespace CwizBankApp
{
    public class CustomerBLL
    {
        public string GetDateFormat()
        {
            using (var db = new DataClasses1DataContext())
            {
                var format = db.CODEs.Where(code => code.NAME.Equals("dateformat")).Select(code=>code.DRNAME) .SingleOrDefault();  
                return format;   
            }
        }

        public IList<string> GetAccountTypes()
        {
            using (var db = new DataClasses1DataContext())
            {
                var  acctype = db.mem_types.Select(account=>account.CustCategory).Distinct().ToList();
                return acctype;
            }
        }




        public IList<mem_city> GetCities(int index)
        {
            using (var db = new DataClasses1DataContext())
            {
                var city = db.mem_cities.Where(c => c.state_id.Equals(index)).ToList();
                return city;
            }
        }

        public string InsertDate(string datefield,string dateFormat)
        {
            string dd, mm, yyyy;
            string date;
            string [] split = Regex.Split(datefield, @"/");
            yyyy = split[2];
            if (dateFormat.Equals("British"))
            {
                dd = split[0];
                mm = split[1];
            }
           else
            {
                dd = split[1];
                mm = split[0];
            }

            date = mm.PadLeft(2, '0') + "/" + dd.PadLeft(2, '0') + "/" + yyyy;  
            return date;
        }

        public string RetrieveDate(string datefield,string dateFormat)
        {
            string dd, mm, yyyy;
            string date;
            string [] split = Regex.Split(datefield, @"/");
            dd = split[1];
            mm = split[0];
            yyyy = split[2];

            if (dateFormat == "British")
            {
                date = dd.PadLeft(2, '0') + "/" + mm.PadLeft(2, '0') + "/" + yyyy;   
            }
            else
            {
                date = mm.PadLeft(2, '0') + "/" + dd.PadLeft(2, '0') + "/" + yyyy;   
            }
            return date;
        }
}

欢迎任何建议。

4

1 回答 1

3

一般来说,我将 BL 与 DAL 分开,因此 DAL 需要对 BL 的引用。这意味着 BL 包含 POCO 和一个描述存储库/工作单元/的接口......所以要回答你的问题,是的,我仍然会创建一个使用 L2S 的 DAL。

为了回答您的第二个问题,我将为您的域中存在的每个实体创建一个业务对象。通常这与 DAL 中的表匹配。aspx 的代码隐藏包含页面的逻辑,而不是业务层。

于 2012-07-05T09:38:57.737 回答