C# 使用通用接口将数据传输到表示层

C# 使用通用接口将数据传输到表示层,c#,linq,entity-framework,design-patterns,C#,Linq,Entity Framework,Design Patterns,我刚刚在一个c#班上完成了第五个作业。我们必须使用实体框架和LINQ来允许控制台应用程序从数据库中创建、读取、更新和删除联系人。我试图将我的程序分为3层,这样我就可以练习应用程序的不同层。这段代码是否以适当的方式将一组记录返回到控制台应用程序层,或者是否有其他方法可以执行此操作 public static List<Contact> ListContacts() { var ent = new contactsEntities(); u

我刚刚在一个c#班上完成了第五个作业。我们必须使用实体框架和LINQ来允许控制台应用程序从数据库中创建、读取、更新和删除联系人。我试图将我的程序分为3层,这样我就可以练习应用程序的不同层。这段代码是否以适当的方式将一组记录返回到控制台应用程序层,或者是否有其他方法可以执行此操作

    public static List<Contact> ListContacts()
    {
        var ent = new contactsEntities();
        using (ent)
        {
            var query = from c in ent.Contacts select c;
            return query.ToList<Contact>();
        }
    }
公共静态列表列表联系人()
{
var ent=新联系人();
使用(耳鼻喉科)
{
var query=来自ent中的c。联系人选择c;
返回query.ToList();
}
}
我的完整计划在这里:

小心延迟加载属性等-有些人认为应该返回与EDM分离的DTO以缓解此问题并避免泄漏详细信息。如果不想将DB对象返回到GUI,添加一个名为ContractViewModel的新类就足够了,该类的值与DB类的值相同。要在DB类和ViewModel之间进行映射,可以使用Automapper。另外,您只需要
returnquery.ToList(),因为泛型类型由Linq语句确定。