我正在尝试确定如何使用EntityFramework 计算表上的匹配行.
问题是每行可能有许多兆字节的数据(在二进制字段中).当然SQL会是这样的:
SELECT COUNT(*) FROM [MyTable] WHERE [fkID] = '1';
Run Code Online (Sandbox Code Playgroud)
我可以加载所有行,然后找到Count:
var owner = context.MyContainer.Where(t => t.ID == '1');
owner.MyTable.Load();
var count = owner.MyTable.Count();
Run Code Online (Sandbox Code Playgroud)
但这非常低效.有更简单的方法吗?
编辑:谢谢,所有.我已将数据库从私有附件移动,因此我可以运行分析; 这有助于但却引起我没想到的混乱.
而我的真实数据是深一点,我会用卡车运送托盘的案件的资料 -我不想让卡车离开除非有至少一个项目在里面.
我的尝试如下所示.我没有得到的部分是CASE_2永远不会访问数据库服务器(MSSQL).
var truck = context.Truck.FirstOrDefault(t => (t.ID == truckID));
if (truck == null)
return "Invalid Truck ID: " + truckID;
var dlist = from t in ve.Truck
where t.ID == truckID
select t.Driver;
if (dlist.Count() == …
Run Code Online (Sandbox Code Playgroud)