我可以在lambda或Entityframework中的不同db表上编写一个select函数

时间:2017-11-14 09:28:27

标签: c# entity-framework

我是EntityFramework的新手,想知道是否可以编写一个Select语句适用于不同的表。如下。

public IList<ent_customer> getCustomer()
{
    return db.Customers.Select(a=>new ent_Customers{
         first_name=a.first_name,
         last_name=a.last_Name
    }).ToList();
}
public IList<ent_vendors> getVendors()
{
    return db.Vendors.Select(a=>new ent_vendors{
         first_name=a.first_name,
         last_name=a.last_Name,
         mobile=a.mobile,
         email=a.email
    }).ToList();
}

在我为所有表使用一个Select,Insert,Update,Delete函数之前,避免在正常的3层项目中重写相同的代码。

我尝试了很多和谷歌,遗憾的是没有找到任何建议

更新

以前一般3tier One SQLEngine类维护SQL查询并动态生成选择,删除,编辑等。 如果我有一个类dal_Product,我需要获得产品列表然后只有我正在调用

objProduct.Select();// All Productions
objCustomer.Select();//All Customer No need to write two different queries
obj

on above examle .. SQLEngine were automatically generate two queries
 1- "select *from Product"
 2- "Select *from Customer" 

So I was avoiding rewriting for similar queries and functions.

Hop知道你们了解我想要基于条件的SQLEngine类型的中央查询生成器。

谢谢并提前

2 个答案:

答案 0 :(得分:0)

要解决您的问题,您可以使用Generic Repository (pattern) 这将照顾CRUD行动。

请注意,有些人说拥有通用存储库模式是bad practice,因为它不是它们的意图。

答案 1 :(得分:0)

不确定你的意思是什么&#34;适用于不同的桌子&#34;,但是让我建议:
1.使用Repository Pattern作为@Jordy van Eijk建议 2.如果您需要处理不同但相关的表Link

,请使用.Include()/ .Load()