c# - Linq to Sql 设计和 MVP

标签 c# asp.net linq-to-sql mvp

我正在尝试 LinqToSql 和 MVP 模式,但在设置良好的设计时遇到了困难。我使用的是 Asp.net 3.5(不是 MVC)

这是一个例子

public interface IMyBusinessCardView
{
    string Field1 { get; set; }
    string Field2 { get; set; }
    string Field15 { get; set; }
}

public class MyBusinessCardPresenter
{
    private IMyBusinessCardView _view;
    private MyBusinessCard _myCard;

    public void ViewClickedSave()
    {
        _myCard.SaveNewBusinessCard(_view);
    }

    public void LoadView()
    {
        _myCard.LoadMyBusinessCardToView(_view);
    }
}

public class MyBusinessCard
{
    public void SaveNewBusinessCard(IMyBusinessCardView view)
    {
        using (var context = new DataContext())
        {
            var card = new BusinessCard()
            {
                Field1 = view.Field1
            };
            context.BusinessCards.InsertOnSubmit(card);
            context.SubmitChanges();
        }
    }

    public void LoadMyBusinessCardToView(IMyBusinessCardView view)
    {
        // Query using Linq to Sql and set in view
        view.Field1 = card.Fields1;
    }
}

我在想 View 和 Controller 非常薄,我想这很好。 “模型”可以访问 View ,这很糟糕吗? 我应该引入 DTO 对象还是应该使用 LinqToSql 生成的实体。

请提供设计反馈。

最佳答案

在 MVP 中,大部分工作应该由 Presenter 完成; View 对演示者的了解越少越好。我还没有看到任何模型与 View 配合使用的东西;我见过演示者在哪里进行所有协调。对于单个页面,可以有多个演示者围绕逻辑展开。

查看其中的图像以了解两种类型的 MVP 模式(被动 View 和监督 Controller ):http://www.yeejie.com/blog/post/2009/01/19/MVP-Passive-View-Supervising-Controller-Presentation-Model.aspx

在此示例中,即使 View 访问监督 Controller 中的模型,但它实际上并未对 View 进行操作。

编辑:刚刚遇到这个框架:http://webformsmvp.codeplex.com/作为一个实现。

HTH。

关于c# - Linq to Sql 设计和 MVP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2287563/

相关文章:

c# - 如何复制剪贴板中按钮的文本?

c# - DateTime.Compare 如何检查日期是否小于 30 天?

c# - Xamarin iOS 以编程方式将导航栏添加到 TableView

asp.net - CSS - 创建 9x9 数独网格的最佳方法是什么?

javascript - 提交后清空textarea的内容

c# - 如何安全地将参数传递给linq to sql

c# - 依赖注入(inject)及其与自动化测试的关系通过一个例子

javascript - JQuery AJAX 不会抛出错误,但也不能正常工作

linq-to-sql - 实体编程如何改变我们对数据库的看法?

c# - 使用成员访问 lambda 表达式参数化 LINQ to SQL 谓词