草庐IT

with_entities

全部标签

c# - Entity Framework ——存储过程返回值

我正在尝试获取存储过程的返回值。以下是此类存储过程的示例:selectName,IsEnabledfromdbo.somethingwhereID=@IDif@@rowcount=0return1return这是一个简单的选择。如果找到0行,我的结果集将为空,但我仍然会有返回值。这是一个不好的例子,因为这是一个选择,所以如果返回0行,我肯定能找到。但是,在插入、删除或其他调用中,我们需要此返回值来了解是否存在问题。我一直无法找到获得此返回值的方法。可以得到输出值,可以得到结果集,但是没有返回值。如果我手动调用SQL,或者即使我使用EntityFramework运行SqlCommand,

c# - 在多对多 Entity Framework 关系中保留外键列表

我的代码优先EntityFramework模型中有一个多对多关系。想象一下,我们有两个表,“公司”和“文章”,它们之间有这样的关系。我的简化代码模型如下所示:publicclassArticle{publicintId{get;set;}publicstringText{get;set;}publicvirtualICollectionCompanies{get;set;}}publicclassCompany{publicintId{get;set;}publicstringName{get;set;}publicvirtualICollectionArticles{get;set;

c# - 等价于 ContinueWith(delegate, CancellationToken) with await continuation

我有这种情况:privateTaskLongRunningTask=/*Something*/;privatevoidDoSomethingMore(TaskpreviousTask){}publicTaskIndependentlyCancelableSuccessorTask(CancellationTokencancellationToken){returnLongRunningTask.ContinueWith(DoSomethingMore,cancellationToken);}特别是,我感兴趣的行为在MSDN'spageaboutContinuationTasks中有详细

c# - CurrentCulture with async/await,自定义同步上下文

我有一个Web应用程序,我通过async/await使用了很多异步操作。一切正常,但当我创建自定义任务以并行运行多个任务时,我注意到,在此任务中,当前文化在等待后发生了变化。问题似乎是,线程池使用操作系统的文化,这与请求的文化不同,默认同步不会更新文化,即使在任务中更改当前线程的文化。所以我创建了一个自定义同步上下文:publicsealedclassCulturePreservingSynchronizationContext:SynchronizationContext{privateCultureInfoculture;privateCultureInfocultureUI;pu

c# - byte[] array to struct with variable length 数组

我正在从套接字接收一个字节数组,字节的结构只是一个固定宽度字符串的大字符数组。在某些情况下,最后一个字段是动态的(而不是固定长度),我正在尝试将字节编码为结构。我读过可变长度的char数组需要是IntPtr,但我还没有弄清楚如何用剩余的字节对其进行编码。我还在一些文章中读到我可能需要第二个结构,但仍然无法弄清楚如何正确地编码它。这是一个这样的site在结构中处理可变长度字符数组的正确方法是什么?结构:[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi)]publicstructHeader{#regionprivatemem

c# - nhibernate 有什么,那个 Entity Framework 4 不见了?

我们正在尝试决定是否值得在项目中使用EntityFramework4。为此,我认为一个好的起点是将它与nhibernate进行比较,nhibernate已经成熟并经过多年使用证明具有企业应用程序所需的所有功能,并找出nHibernate具有哪些EF4缺少的功能所以开始吧,我有限的知识:缓存:nhib有二级缓存,而EF4缓存很差(?)nHibernate具有大多数数据库的提供程序,而EF需要非SQL数据库的插件nHib更快/更优化nHib有扩展点(例如自定义字段类型)...还有什么?找到一些文章:http://ayende.com/blog/archive/2010/01/05/nhib

c# - 在 Entity Framework 中合并

有没有办法调用T-Sql'sMERGE来自.NETEntityFramework4的命令? 最佳答案 不,没有这样的内置功能-您必须构建自己的功能。例如,非常常见的方法如下:publicvoidSaveOrUpdate(MyEntityentity){if(entity.Id==0){context.MyEntities.AddObject(entity);}else{context.MyEntities.Attach(entity);context.ObjectStateManager.ChangeObjectState(enti

c# - Entity Framework 以一对多方式替换集合的正确方法

假设一个客户有很多电话号码,而一个电话号码只有一个客户。publicclassPhoneNumber:IValueObject{publicstringNumber{get;set;}publicstringType{get;set;}}publicclassCustomer:IEntity{publicICollectionphones{get;privateset;}//ewatnoencapsulatedcollectionsupportpublicvoidSetPhones(paramsPhoneNumber[]phones){this.phones.Clear();this.

c# - 如何针对集合调用 Expression<Func<Entity, bool>>

我有一个从存储库模式定义存储库的接口(interface):interfaceIRepository{ListGetAllCustomers(Expression>expression);}我已经在EntityFramework上实现了它:classEntityFrameworkRepository{publicListGetAllCustomers(Expression>expression){returnDBContext.Customers.Where(expression).ToList();}}这似乎工作得很好,它允许我做类似的事情:varcustomers=entityFr

c# - 无法在 Entity Framework 中使用 AddRange 自动生成 IDENTITY

我不知道这是EntityFramework的设计选择还是代表我的错误方法,但每当我尝试将AddRange实体添加到DbSet时,我似乎无法获得自动生成的IDENTITY字段。[Table("entities")]publicclassEntity{[Key][Column("id")]publiclongId{get;set;}[Column("field")]publicstringField{get;set;}}varentities=newEntity[]{newEntity(){Field="A"},newEntity(){Field="B"},};_dbContext.Ent