我在LINQ中使用存储库模式,有IRepository.DeleteOnSubmit(T实体)。它运行得很好,但是当我的实体类有接口时,如下所示:
public interface IEntity { int ID {get;set;} }
public partial class MyEntity: IEntity {
public int ID {
get { return this.IDfield; }
set { this.IDfield=value; }
}
}
然后尝试删除这样的实体:
IEntity ie=repositor
我使用ADO.NET C# POCO实体生成器Visual Studio外接程序为我的实体生成POCO类。
当我尝试在Linq to Entities查询中使用该类时,如下所示:
var q = from w in entities.Widgets
select new Widget
{
Id = w.Id,
WidgetName = w.WidgetName,
WidgetDescription = w.WidgetDescription
};
return q.ToL
是否可以动态限制从LINQ to SQL查询返回的列数?
我有一个超过50列的数据库SQL视图。我的应用程序有一个具有50多个属性的域对象,每列一个。在我的winforms项目中,我将一个域对象列表绑定到一个网格。默认情况下,只有少数列是可见的,但是用户可以打开/关闭任何列。
用户抱怨网格加载时间太长。我捕获了LINQ生成的SQL查询,然后在SQL Server Management Studio中执行它,并验证了它的速度。如果我修改SQL语句,删除所有不可见的列,它几乎可以立即运行。在性能和查询中的列数之间有直接的关系。
我想知道是否有可能动态改变从LINQ生成的SQL查询返回的列数?例如,
我试图从C#中的LINQ/EF6中获得这样的查询
SELECT "ID_column"
FROM "Entity"
WHERE ("ColumnA","ColumnB") IN (('Value_0_0','Value_0_1'),('Value_1_0','Value_1_1'), ...);
但是我得到了下面代码的错误
无法创建“匿名类型”类型的常量值。在此上下文中只支持基本类型或枚举类型。
context.Entities
.Where
我很难说服NHibernate (EF能够做到)基于DateTime实体属性的Hour属性进行过滤。我的实体是这样的:
public class Invoice {
// ...
public DateTime Time { get; set; }
// ...
}
我需要在一个特定的时间内收回所有的发票(比方说22)。一个可能的查询可以是:
from i in s.Linq<Invoice>()
where i.Type.Id == Invoice.Type.Local &&
i.TimeOfRegister.Hour
我试图为自己编写一个基于实体组件的游戏框架。我只是在基类系统中遇到了一个逻辑问题。
问题是,我有两件事,实体(可以包含其他实体和组件)和组件(它们连接到特定的实体)。
所以我做了两个界面:
interface IEntity
interface IComponent
我为每个人做了一个抽象的类
public class Component implements IComponent
public class Entity extends Sprite implements IEntity, IComponent
问题是,在IEntity接口中,我有一个函数:
function addCompo
假设我们在EfCore有这些实体..。
public class Entity
{
public int Id { get; set; }
public decimal Rate { get; set; }
// ... omitted for brevity
public int? NavigationPropertyId { get; set; }
public NavigationProperty? NavigationProperty { get; set; }
// ... omitted for brevity
}
public c
假设我有以下内容(用于在下拉列表中显示项目):
class SelectItemViewModel<TId>
{
string Name {get; set;}
TId Id {get; set;}
}
在我的数据库实体上也是这样:
interface IEntity<TId>
{
TId Id {get;
}
我希望能够重用逻辑来创建这些下拉项,为名称传入一些东西。例如,现在我有(简化的):
List<SelectItemViewModel<int>> GetAvailableEntity1Items(IQuerable<En
我有一个独特的要求,我希望与LINQ to SQL是可能的。
首先,我扩展了一个较旧的应用程序,因此我只能使用当前的数据库列名和现有的LINQ实体类。
我有一个带有以下方法的LINQ包装器:
public T Get(int id) where T : class, IEntity {
...
}
IEntity看起来像这样:
public interface IEntity {
int Id { get; }
}
我现有的实体类(由LINQ生成)如下所示:
//this is not the exact code
//it is just to give you an idea
pu
我使用linq to entities,而我的实体模型位于MSSQL数据库之上。
我想知道linq to entities是否会抛出SqlExceptions。
换句话说,如果连接到数据库时出现问题,下面的代码会成功捕获异常吗?
如果不是,在使用linq to entities时处理异常的最佳方法是什么?
using (MyUserEntities userEntities = new MyUserEntities(connectionString))
{
try
{
if (us
我有一个相当复杂的查询,我想要返回一些特定类型。实体框架主要涉及日期/时间计算或字符串值,当我尝试比System.DateTime类型更深入的操作时,实体框架似乎是在抛出虚拟数据:
在LINQ实体中不支持指定类型成员'Date‘。只支持初始化器、实体成员和实体导航属性。
有关的查询是:
// Here comes the aggregate query.
object summary = from te in ctx.TimeEntries
where te.StartTime >= startofweek