小编Lad*_*nka的帖子

UnityContainer.Teardown方法应该做什么?

我想明确"释放"Unity解析的对象实例.我希望Teardown方法应该完全用于此,所以我尝试了这样的事情:

container.RegisterType(typeof(IMyType), typeof(MyType), 
    new MyLifetimeManager());
var obj = container.Resolve<IMyType>();
...
container.Teardown(obj);
Run Code Online (Sandbox Code Playgroud)

MyLifetimeManager存储对象实例HttpContext.Current.Items.我希望该Teardown方法将调用RemoveValue生命周期管理器并释放MyType实例和生命周期管理器实例.它不起作用.首先RemoveValue是没有调用,如果我再次调用,Resolve<IMyType>我将获得先前解析的实例.

Teardown方法应该怎么办?尽管有他的终身经理,我怎么能释放对象?

编辑:

如果Teardown没有发布实例,谁呢?谁打电话RemoveValue给终身经理?

.net unity-container

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

实体框架4.1Code首先连接到Sql Server 2005

我正在尝试将Entity Framework 4.1 RC与SQL Server 2005实例一起使用.我创建了一个空数据库,我想将我的POCO对象保存到它.我的POCO看起来像:

public class Cart
{
    public Cart()
    {
        this.CartId = Guid.NewGuid();

    }

    public Guid CartId { get; set; }
    public decimal TotalCost { get; set; }
    public decimal SubTotalCost { get; set; }
    public decimal Tax { get; set; }
    public decimal EstimatedShippingCost { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的CartContext是:

public class CartContext : DbContext
{
    public DbSet<Cart> Carts { get; set; }
    public DbSet<Attribute> Attributes { get; set; }
    public DbSet<AttributeItem> AttributeItems { get; set; …
Run Code Online (Sandbox Code Playgroud)

entity-framework ef-code-first entity-framework-4.1

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

如何首先使用entityframework数据库获取数据库信息?

当我使用Entity Framework codefirst时,我可以使用以下代码来获取我的数据库连接字符串:

var db = new dbContext();
Console.Writeline(db.Database.Connection.ConnectionString);
Run Code Online (Sandbox Code Playgroud)

但是当我首先执行数据库时,数据库不可用.我如何(从运行时的代码)开始获取实体框架正在使用的数据库连接字符串?

.net entity-framework connection-string entity-framework-4.1 database-first

6
推荐指数
2
解决办法
7085
查看次数

实体框架代码第一映射

我有两个类,Group类与User类有多对多关系(表示用户所属的组),然后该组与用户类(表示组的所有者)之间也存在一对多的关系).

我该如何映射?

public class User
{
    public int Id { get; set; }
    public string Avatar { get; set; }
    public string Name { get; set; }
    public string Message { get; set; }

    public virtual ICollection<Group> OwnedGroups { get; set; }
    public virtual ICollection<Group> Groups { get; set; }
}

public class Group
{
    public int Id { get; set; }
    public DateTime CreateDate { get; set; }
    public DateTime ModifyDate { get; set; }
    public string Name { …
Run Code Online (Sandbox Code Playgroud)

c# mapping entity-relationship ef-code-first entity-framework-4.1

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

删除外键属性会​​导致异常

我不想使用外键关联到CompanyType(将持有外键ID的成员),但更喜欢使用导航属性.所以我删除了CompanyTypeId.

我得到了这个涉及实体公司和CompanyType之间关系的例外:

错误5:命名空间" http://schemas.microsoft.com/ado/2008/09/edm "中的元素"Principal "具有不完整的内容.期望的可能元素列表:名称空间" http://schemas.microsoft.com/ado/2008/09/edm "中的"PropertyRef ".

在此输入图像描述

如何在不获取异常的情况下从POCO中删除这些ID?

.net c# mapping entity-relationship entity-framework

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

实体框架4.1,找不到Load()方法?

好吧,我打算用锤子敲打我的键盘.我本周末决定和EF一起玩,我在4.0开始了一个项目.我发现4.1已经出来所以我下载并安装了包.

想象一下,当我在dbExtensions中使用Load()方法并且无法找到它时,我感到很惊讶.所以我添加了对安装程序创建的EntityFramework二进制文件的引用,从项目中删除System.Data.Entity引用,重建,它说

"类型'System.Data.Objects.ObjectContext'是在未引用的程序集中定义的.您必须添加对程序集'System.Data.Entity,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的引用".

我试图重新生成我的模型,我尝试删除东西,我尝试通过使用直接引用4.1.什么都行不通.

我显然遗漏了一些基本的东西.我怎么告诉visual studio使用4.1框架?? !!

entity entity-framework entity-framework-4.1

6
推荐指数
2
解决办法
7811
查看次数

如何防止EF验证在DBContext.SaveChanges()期间未映射的属性

我有一个用户模型,其中包含两个[NotMapped]字符串属性Password和ConfirmPassword.这些是未映射的,因为我将密码保存为字节数组(在salting之后),因此在用户模型中有两个额外的属性(映射)InternalPassword和Salt.

问题是当我使用用户模型更改密码时,实体框架抛出DBEntityValidation错误,指出"需要密码属性".我在这里理解的是,EF正在尝试在保存之前验证我的模型,并且由于未设置Password/ConfirmPassword,因此抛出此错误.这提出了以下问题:

1)如果属性密码被明确表示为[NotMapped],为什么EF在保存期间验证它?2)如果EF在保存期间执行验证,并且在绑定期间也执行相同的操作(控制器操作方法中的IE),它是否会影响性能?(验证两次)3)解决此错误的推荐方法是什么?(如果我将Password属性显式设置为虚拟值,则错误消失.)

编辑:我删除了代码,因为它很长,可能是没有答案的原因.如果有人想看看,我可以在下面添加.

c# entity-framework-4.1 asp.net-mvc-3

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

WCF BasicHttpBinding - 我在哪里可以找到WSDL中的SOAP1.1

我一直在尝试找出使用WCF BasicHTTPBinding生成的WSDL中使用的SOAP 1.1/1.2版本.但我无法确定.

我需要确认这一点,以便我可以告诉客户我们正在使用特定版本的SOAP.要求是使用SOAP 1.1.从我读到的BasicHttpBinding使用SOAP1.1但无法找到或检查.

请有人帮忙.例如

<wsdl:definitions name="MyService" targetNamespace="http://mydomain.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:tns="http://spotless.com/isb/services" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
Run Code Online (Sandbox Code Playgroud)

wcf soap wsdl

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

从ASP.NET调用WCF服务时身份验证失败

平台:VS 2008,.NET 3.5,C#,Oracle 11g

我创建了一个WCF服务,它接受一些数据元素,然后将它们插入到数据库表中并返回一个整数.我还创建了一个小的ASP.NET Web应用程序来测试该服务.测试Web应用程序只有一个包含字段和按钮的页面,单击该按钮实际调用Web服务以插入数据并返回整数值.

我采取的步骤:

  • 构建WCF服务
  • 发布WCF服务
  • 使用svcutil生成代理类(.cs)和app.config
  • 构建测试asp.net应用程序并添加上述步骤中生成的代理类和配置设置.
  • 破坏测试应用程序

当我在我的计算机上部署WCF和测试Web应用程序时,它工作正常 - Windows XP,IIS 5.1.但是,每当我尝试在远程服务器上部署它时,它都不起作用.当我尝试使用该服务(部署在远程服务器上 - Windows 2003服务器,IIS 6)时,我收到以下错误:

无法满足安全令牌请求,因为身份验证失败.

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.ServiceModel.FaultException:无法满足安全令牌请求,因为身份验证失败.

以下是.config文件内容:

调用ASP.NET Web应用程序(Consumer)的Web.Config的wcf部分:

  <system.serviceModel>
    <bindings>
      <wsHttpBinding>
    <binding name="WSHttpBinding_IMyWCFService" closeTimeout="00:01:00"
        openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
        bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
        maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
        messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
        allowCookies="false">
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
          maxBytesPerRead="4096" maxNameTableCharCount="16384" />
      <reliableSession ordered="true" inactivityTimeout="00:10:00"
          enabled="false" />
      <security mode="Message">
        <transport clientCredentialType="Windows" proxyCredentialType="None"
        realm="" />
        <message clientCredentialType="Windows" negotiateServiceCredential="true"
        algorithmSuite="Default" establishSecurityContext="true" />
      </security>
    </binding>
      </wsHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://57.23.85.28:8001/MyWCFService/MyWCFService.svc"
      binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IMyWCFService"
      contract="IMyWCFService" …
Run Code Online (Sandbox Code Playgroud)

asp.net wcf wcf-security

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

实体框架代码优先迁移的例外情况

在使用Entity Framework 4.3的Code First Migrations时,我得到了几个未处理的异常.

数据库上下文:

public class MyAppContext : DbContext
{
   public DbSet<Branch> Branches { get; set; }

   public MyAppContext()
   { }
}
Run Code Online (Sandbox Code Playgroud)

实体:

public class Branch : IEntity<Guid>
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public bool Active { get; set; }
 }
Run Code Online (Sandbox Code Playgroud)

数据库初始化程序:

public class MyAppInitializer : CreateDatabaseIfNotExists<MyAppContext>
{
   protected override void Seed(MyAppContext context)
   {
      context.Branches.Add(new Branch() { Id = branchId, Name …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework ef-migrations

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