小编Fab*_*sta的帖子

存储过程和实体框架4.0中的表值参数

我在SQL Server 2008中有一个名为"GetPrices"的存储过程,其中有一个名为"StoreIDs"的表值参数.

这是我为这个TVP创建的类型:

CREATE TYPE integer_list_tbltype AS TABLE (n int)
Run Code Online (Sandbox Code Playgroud)

我想从我的实体框架中调用SP.但是当我尝试将存储过程添加到EDM时,我收到以下错误:

函数'GetPrices'在参数索引2处具有参数'StoreIDs',其具有不受支持的数据类型'表类型'.该功能被排除在外.

这有什么解决方法吗?有什么想法吗?

法比奥

sql-server stored-procedures sql-server-2008 table-valued-parameters entity-framework-4

8
推荐指数
1
解决办法
7478
查看次数

我可以在编译时声明Type <T>的变量而不指定T吗?

如何动态加载"MyContent"类?我有1,1 interface<T>个抽象泛型class<T>和1个类.检查我的代码:

public interface IMyObjectInterface{
}
public abstract MyAbstractObject : IMyObjectInterface{
}
public class MyObject : MyAbstractObject{
}

public interface IMyContentInterface<T>  where T : MyAbstractObject
{
  void MyMethod();
}
public abstract MyAbstractContent<T>, IMyContentInterface<T>  where T : MyAbstractObject
{
  public abstract void MyMethod();
}
public public class MyContent : MyAbstractContent<MyObject>
{
  public override void MyMethod() { //do something }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试,但显然它不起作用:

IMyObjectInterface obj = (IMyObjectInterface)Assembly.Load("MyAssembly").CreateInstance("MyObject");
IMyContentInterface<obj> content = (IMyContentInterface<obj>)Assembly.Load("MyAssembly").CreateInstance("MyContent");
content.MyMethod();
//assembly and type names are correct
Run Code Online (Sandbox Code Playgroud)

如果我换IMyContentInterface<obj> …

.net c# generics assemblies

5
推荐指数
3
解决办法
6410
查看次数