小编use*_*745的帖子

实体框架5,删除一对多的关系?

实体A,B的关系是一对多,(A有很多B,B必须属于A).

我禁用lazy loading并加载A,B,如下所示:

dbContext.As.Load();
//**particaly load B** 
dbContext.Bs.Where(predicateX).Load();
Run Code Online (Sandbox Code Playgroud)

我用的时候

dbContext.As.Remove(someA)
Run Code Online (Sandbox Code Playgroud)

要删除A,我会遇到以下错误消息

The relationship could not be changed because one or more of the foreign-key properties is non-nullable

相反,如果我使用:

//remove all B in someA
foreach(B b in someA.Bs.ToList())
{
   dbContext.Bs.Remove(b);
}
dbContext.As.Remove(someA)
Run Code Online (Sandbox Code Playgroud)

一切都好.

有一个更好的方法吗?

编辑


我正在使用Database First并在数据库端添加B的外键约束(在删除级联上).

我认为"外键约束"恰好等于代码"OnModelCreating".但代码"dbContext.As.Remove(someA)"无法按预期工作.

当ABC级联一对多关系时,事情变得更糟.为了删除someA,你需要这样做

foreach(B b in someA.Bs.ToList())
{
  foreach(C c in b.Cs.ToList())
  {
    dbContext.Cs.Remove(c);
  }
  dbContext.Bs.Remove(b);
}
dbContext.As.Remove(someA);
Run Code Online (Sandbox Code Playgroud)

解决了:


我首先使用数据库(sqlite)并在数据库端添加外键约束.

使用vs2012从sqlite数据库文件创建edmx,

vs2012未能设置关系的"on delete cascade"属性.

手动设置属性后,单个调用"dbContext.As.Remove(someA)"按预期工作!

entity-framework-5

6
推荐指数
1
解决办法
6729
查看次数

WCF在.svclog文件中的所有邮件正文永远是"<ENV:身体> ...流... </ env的:车身>",如何显示通过配置的真实内容?

我通过配置帮助链接解决了日志用户名和密码问题

对于消息记录安全顾虑 http://msdn.microsoft.com/en-us/library/ms730318.aspx

但是邮件正文总是"......流...",

有没有办法通过配置解决这个问题或以编程方式进行解决?

我只是想看看使用SvcTraceViewer工具"请求/响应详细的肥皂xml".


我已经看到了这两个消息头和body.my问题在于>>>身体总是喜欢"......流......",我需要真正的内容不只是"... ...流".


请求消息

<MessageLogTraceRecord>
    <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">
    <s:Header>
    <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://www.onvif.org/ver10/device/wsdl/GetSystemDateAndTime</Action>
    <ActivityId CorrelationId="fcc87310-055d-452b-9c0d-ffe671585392" xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">4876b839-30d4-4351-abb8-4fa6bf53d7e1</ActivityId>
    <VsDebuggerCausalityData xmlns="http://schemas.microsoft.com/vstudio/diagnostics/servicemodelsink"></VsDebuggerCausalityData>
    <Security s:mustUnderstand="1" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <UsernameToken>
    <Username>duwu891229</Username>
    <Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">1ax8Hp9OY1H+vw7+w0fv8BDps9M=</Password>
    <Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">V5x7WKzZ4U2DdM9cxhVXuQEAAAAAAA==</Nonce>
    <Created xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2013-06-26T05:50:06.006Z</Created>
    </UsernameToken>
    </Security>
    </s:Header>
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <GetSystemDateAndTime xmlns="http://www.onvif.org/ver10/device/wsdl"></GetSystemDateAndTime>
    </s:Body>
    </s:Envelope>
    </MessageLogTraceRecord>
Run Code Online (Sandbox Code Playgroud)

响应消息("env:Body"标记中的问题)

<MessageLogTraceRecord>
    <HttpResponse xmlns="http://schemas.microsoft.com/2004/06/ServiceModel/Management/MessageTrace">
    <StatusCode>OK</StatusCode>
    <StatusDescription>OK</StatusDescription>
    <WebHeaders>
    <Date>Wed, 26 Jun 2013 13:50:06 GMT</Date>
    <Server>App-webs/</Server>
    <Connection>close</Connection>
    <Content-Length>2406</Content-Length>
    <Content-Type>application/soap+xml; charset=utf-8</Content-Type>
    </WebHeaders>
    </HttpResponse>
    <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:soapenc="http://www.w3.org/2003/05/soap-encoding" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:trt="http://www.onvif.org/ver10/media/wsdl" xmlns:timg="http://www.onvif.org/ver20/imaging/wsdl" xmlns:tev="http://www.onvif.org/ver10/events/wsdl" xmlns:tptz="http://www.onvif.org/ver20/ptz/wsdl" xmlns:tan="http://www.onvif.org/ver20/analytics/wsdl" xmlns:tst="http://www.onvif.org/ver10/storage/wsdl" xmlns:ter="http://www.onvif.org/ver10/error" xmlns:dn="http://www.onvif.org/ver10/network/wsdl" xmlns:tns1="http://www.onvif.org/ver10/topics" xmlns:tmd="http://www.onvif.org/ver10/deviceIO/wsdl" …
Run Code Online (Sandbox Code Playgroud)

wcf

5
推荐指数
1
解决办法
3149
查看次数

标签 统计

entity-framework-5 ×1

wcf ×1