小编Nic*_*ers的帖子

存储过程和更新EDMX

我对存储过程和EDMX有无穷无尽的问题.我创建了一个过程,从数据库中更新了模型,并且一切正常.然后我删除了一个列并在存储过程中添加了一个新列.我更新了模型,但EDMX似乎没有刷新proc定义.

我删除了proc,并进行了更新,但手动必须删除对proc的所有引用.我最终只是重命名proc并通过模型更新从数据库导入.

我刚才有同样的问题.添加了新列,并重命名了现有列.我通过数据库中的更新模型刷新了EDMX,但EDMX没有变化,显然在运行时,它失败了.如何使用Entity Framework完成存储过程更新?

在此输入图像描述

我删除了proc,重新生成了模型,删除了proc的'cs'文件,编译后再将程序添加到数据库中,重新生成模型,然后爆炸!它添加了相同的模型3次,只有最后一个是正确的.为什么它会继续带回旧版本?

c# entity-framework

57
推荐指数
4
解决办法
4万
查看次数

HttpModule EndRequest处理程序调用两次

我正在尝试为在WCF中实现并托管在Azure上的REST服务实现身份验证.我正在使用HttpModule来处理AuthenticationRequest,PostAuthenticationRequest和EndRequest事件.如果Authorization标头丢失或者其中包含的标记无效,则在EndRequest期间我将响应的StatusCode设置为401.但是,我已确定调用EndRequest两次,并且在第二次调用时响应已经有标题set,导致设置StatusCode的代码抛出异常.

我向Init()添加了锁,以确保处理程序没有被注册两次; 还是跑了两次.Init()也运行了两次,表明正在创建两个HttpModule实例.但是,在VS调试器中使用Set Object ID似乎表明请求实际上是不同的请求.我在Fiddler中验证过,浏览器只向我的服务发出了一个请求.

如果我切换到使用global.asax路由而不是依赖于WCF服务主机配置,则只调用一次处理程序,一切正常.

如果我将配置添加到system.web配置部分以及Web.config中的system.webServer配置部分,则只调用一次处理程序,一切正常.

所以我有缓解措施,但我真的不喜欢我不明白的行为.为什么处理程序被调用两次?

这是问题的最小重复:

Web.config文件:

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <!--<httpModules>
      <add name="AuthModule" type="TestWCFRole.AuthModule, TestWCFRole"/>
    </httpModules>-->
  </system.web>
  <system.serviceModel>
    <behaviors>
      <endpointBehaviors>
        <behavior name="WebBehavior">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior>
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="true" />
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing …
Run Code Online (Sandbox Code Playgroud)

asp.net wcf azure

8
推荐指数
2
解决办法
4743
查看次数

C#Process.Start()如果找不到文件则继续?

我正在寻找使用Process.Start()来启动可执行文件,但我想继续执行程序,无论可执行文件是成功还是失败,或者Process.Start()本身是否抛出异常.

我有这个:

        myProcess.StartInfo.UseShellExecute = false;
        // You can start any process, HelloWorld is a do-nothing example.
        myProcess.StartInfo.FileName = "C:\\HelloWorld.exe";
        myProcess.StartInfo.CreateNoWindow = true;
        myProcess.Start();
Run Code Online (Sandbox Code Playgroud)

我知道你可以把它添加到try catch中

          try
        {
            myProcess.StartInfo.UseShellExecute = false;
            // You can start any process, HelloWorld is a do-nothing example.
            myProcess.StartInfo.FileName = "C:\\HelloWorld.exe";
            myProcess.StartInfo.CreateNoWindow = true;
            myProcess.Start();
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
Run Code Online (Sandbox Code Playgroud)

如果找不到文件,尝试捕获版本不会失败?如何使用InvalidOperationException之类的其他异常Win32Exception ObjectDisposedException

如果失败,目标就是继续使用代码......

非常感谢!

c#

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

标签 统计

c# ×2

asp.net ×1

azure ×1

entity-framework ×1

wcf ×1