我有一个存储过程有三个参数,我一直在尝试使用以下命令返回结果:
context.Database.SqlQuery<myEntityType>("mySpName", param1, param2, param3);
Run Code Online (Sandbox Code Playgroud)
起初我尝试使用SqlParameter对象作为参数,但这不起作用并抛出SqlException以下消息:
过程或函数'mySpName'需要参数'@ param1',这是未提供的.
所以我的问题是你如何使用这个方法与期望参数的存储过程?
谢谢.
我正在创建一个POCO模型,首先使用实体框架代码CTP5.我正在使用装饰来创建PK列的属性映射.但是如何在多个列上定义PK,具体来说,如何控制索引中列的顺序?这是班级中属性顺序的结果吗?
谢谢!
使用EF4 CTP5 DbContext,相当于此
public void Refresh(Document instance)
{
_ctx.Refresh(RefreshMode.StoreWins, instance);
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试过了,但它不会做同样的事情,更新实例
public void Refresh(Document instance)
{
_ctx.ChangeTracker.DetectChanges();
}
Run Code Online (Sandbox Code Playgroud)
?
给定EF-Code First CTP5实体布局,如:
public class Person { ... }
Run Code Online (Sandbox Code Playgroud)
它有一个集合:
public class Address { ... }
它有一个单一的关联:
public class Mailbox { ... }
我想要做:
PersonQuery.Include(x => x.Addresses).Include("Addresses.Mailbox")
没有使用魔法字符串.我想用lambda表达式来做.
我知道我上面输入的内容将编译并将所有匹配搜索条件的人员带回他们的地址和每个地址的邮箱急切加载,但它是一个令我恼火的字符串.
如果没有字符串我该怎么办?
谢谢堆栈!
我有这个班级和表格:
public class Foo
{
public Guid Id {get;set;}
public string Name {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
create table Foo
(
id uniqueidentifier primary KEY DEFAULT (newsequentialid()),
name nvarchar(255)
)
Run Code Online (Sandbox Code Playgroud)
问题是,当我尝试保存新的foo时,第一个使用了0000-000-00 ... id和第二个也是,所以我得到了约束异常
有谁知道修复?
code-first entity-framework-4 ef4-code-only entity-framework-ctp5
使用Entity Framework Code First CTP5,如何创建INT的主键列,而不是标识列
最好不要使用属性.
试图将我们的EF4解决方案转换为EF CTP5,并遇到了问题.
这是模型的相关部分:

相关关系: - 一个县有许多城市 - 一个城市只有一个州
现在,我想执行以下查询: - 获取系统中的所有县,并包括所有城市,以及这些城市的所有州.
在EF4中,我会这样做:
var query = ctx.Counties.Include("Cities.State");
Run Code Online (Sandbox Code Playgroud)
在EF CTP5中,我们有一个强类型的包含,它需要一个Expression<Func<TModel,TProperty>>.
我可以让县的所有城市都没有问题:
var query = ctx.Counties.Include(x => x.Cities);
Run Code Online (Sandbox Code Playgroud)
但我如何才能获得这些城市的州?
我使用纯POCO,所以County.Cities是ICollection<City>,所以我不能这样做:
var query = ctx.Counties.Include(x => x.Cities.State)
Run Code Online (Sandbox Code Playgroud)
因为ICollection<City>没有一个叫做的属性State.
这几乎就像我需要使用嵌套的IQueryable.
有任何想法吗?我是否需要回退到这个场景中包含的魔术字符串?
在这篇博客文章中:EF4 Code First Control Unicode和Decimal Precision,Scale with Attributes,Dane Morgridge使用属性来控制数据库中不同类型的创建.
......我发现这个非常独特的BTW!
如何使用EF CTP5的代码优先API在生成的数据库中生成货币类型字段,是否可以使用约定或属性从模型中执行此操作?
抱歉,我的英语不是我的主要语言.
提前致谢.
这是工作代码;
IQueryable<Product> productQuery = ctx.Set<Product>().Where(p => p.Id == id).(Include"Contexts.AdditionalProperties.Field");
Run Code Online (Sandbox Code Playgroud)
但是你知道如果我们在"Contexts.AdditionalProperties.Field"中的字符串语句中出错,它就不会产生编译时错误
我想写下面的代码;
IQueryable<Product> productQuery = ctx.Set<Product>().Where(p => p.Id == id).Include(p => p.Contexts);
Run Code Online (Sandbox Code Playgroud)
但上面的声明无法给出定义AdditionalProperties和Field的机会.
我们应该做什么?
我想编写多个包含用于构建查询的包含.
谢谢.
我正在使用ASP.Net MVC 3和Entity Framework代码优先构建的项目中使用mvc-mini-profiler.
一切都很有效,直到我尝试通过ProfiledDbConnection在文档中描述的方式包装连接来添加数据库分析.由于我使用的是DbContext,因此我尝试提供连接的方式是使用静态工厂方法构造函数:
public class MyDbContext : DbContext
{
public MyDbContext() : base(GetProfilerConnection(), true)
{ }
private static DbConnection GetProfilerConnection()
{
// Code below errors
//return ProfiledDbConnection.Get(new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionName"].ConnectionString));
// Code below works fine...
return new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionName"].ConnectionString);
}
//...
}
Run Code Online (Sandbox Code Playgroud)
使用时ProfiledDbConnection,我收到以下错误:
ProviderIncompatibleException: The provider did not return a ProviderManifestToken string.
堆栈跟踪:
[ArgumentException: The connection is not of type 'System.Data.SqlClient.SqlConnection'.]
System.Data.SqlClient.SqlProviderUtilities.GetRequiredSqlConnection(DbConnection connection) +10486148
System.Data.SqlClient.SqlProviderServices.GetDbProviderManifestToken(DbConnection connection) +77
System.Data.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection) +44
[ProviderIncompatibleException: The provider did not …Run Code Online (Sandbox Code Playgroud)