小编Evi*_*eon的帖子

在Entity Framework 4中调用用户定义的函数

我在SQL Server 2005数据库中有一个用户定义的函数,它返回一个位.我想通过实体框架调用此函数.我一直在寻找,并没有太多运气.

在LINQ to SQL中,这很简单,我只是将函数添加到Data上下文模型中,我可以像这样调用它.

bool result = FooContext.UserDefinedFunction(someParameter);
Run Code Online (Sandbox Code Playgroud)

使用实体框架,我已将该函数添加到我的模型中,它出现在模型浏览器中的SomeModel.Store\Stored Procedures下.

该模型没有为该函数生成代码,.edmx文件的XML包含:

<Function Name="UserDefinedFunction" ReturnType="bit" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="true" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo">
    <Parameter Name="someParameter" Type="int" Mode="In" />
</Function>
Run Code Online (Sandbox Code Playgroud)

我能得到的最接近的是这样的:

bool result = ObjectContext.ExecuteFunction<bool>(
    "UserDefinedFunction",
    new ObjectParameter("someParameter", someParameter)
).First();
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误消息:

无法在容器'FooEntities'中找到FunctionImport'UserDefinedFunction'.

名称已被更改以保护无辜者.

tldr:如何使用Entity Framework 4.0调用标量值的用户定义函数?

c# linq-to-entities entity-framework entity-framework-4

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

在VBA中使用标准.Net库

我已经成功地运行了我自己的.Net代码,遵循此处发布的步骤从Office 2003执行.NET 3.0代码

有没有办法使用标准的.Net库而无需编写包装器?这样我们就可以避免在客户端计算机上注册并安装自定义DLL到GAC中.

我发现tlb文件已经存在于C:\ Windows\Microsof.NET\Framework文件夹中,并且能够添加对mscorlib.dll的引用.查看RijndaelManaged的文档,此类似乎是COM可见.

我能够创建一个实例,但是一旦我尝试使用它,我就会收到错误(例如"类型不匹配").

Sub Macro1()
   Dim aesImplementation As New RijndaelManaged

   Set key = aesImplementation.GenerateKey()
   Set iv = aesImplementation.GenerateIV()
End Sub
Run Code Online (Sandbox Code Playgroud)

我愿意接受你提供的任何黑客行为!

.net vba

7
推荐指数
1
解决办法
9525
查看次数

防止与 EF Core 同步使用 API

如何防止使用 Entity Framework Core 进行同步数据库访问?例如,我如何确保我们调用的是 ToListAsync() 而不是 ToList()?

我一直在尝试在对调用同步 API 的方法进行单元测试时抛出异常。是否有配置选项或一些我们可以覆盖的方法来使其工作?

我尝试过使用 DbCommandInterceptor,但是在使用内存数据库进行测试时,没有调用任何拦截器方法。

c# entity-framework-core ef-core-3.1

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

使用ASP.Net,如何为静态内容启用浏览器缓存并为动态内容禁用它?

关于让浏览器避免缓存动态内容(例如.aspx页面),我发现了很多很好的信息,但是我没有成功地让浏览器缓存我的静态内容,特别是css,javascript和图像文件.

我一直在使用Global.asax中的Application_BeginRequest而没有成功.拥有一个单独的静态内容服务器不是我们的选择.我还想避免配置IIS设置,除非可以从web.config控制它们.禁用aspx页面的缓存是否会影响其上显示的静态内容的缓存?

如果以前已经回答过这个问题我很抱歉.

作为讨论的起点,这里是我的Global.asax文件背后的代码.

public class Global_asax : System.Web.HttpApplication
{
    private static HashSet<string> _fileExtensionsToCache;

    private static HashSet<string> FileExtensionsToCache
    {
        get 
        {
            if (_fileExtensionsToCache == null) 
            {
                _fileExtensionsToCache = new HashSet<string>();

                _fileExtensionsToCache.Add(".css");
                _fileExtensionsToCache.Add(".js");
                _fileExtensionsToCache.Add(".gif");
                _fileExtensionsToCache.Add(".jpg");
                _fileExtensionsToCache.Add(".png");
            }

            return _fileExtensionsToCache;
        }
    }

    public void Application_BeginRequest(object sender, EventArgs e)
    {
        var cache = HttpContext.Current.Response.Cache;

        if (FileExtensionsToCache.Contains(Request.CurrentExecutionFilePathExtension)) 
        {
            cache.SetExpires(DateTime.UtcNow.AddDays(1));
            cache.SetValidUntilExpires(true);
            cache.SetCacheability(HttpCacheability.Private);
        } 
        else 
        {
            cache.SetExpires(DateTime.UtcNow.AddDays(-1));
            cache.SetValidUntilExpires(false);
            cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
            cache.SetCacheability(HttpCacheability.NoCache);
            cache.SetNoStore();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-4.0

4
推荐指数
1
解决办法
5042
查看次数

在哪里可以找到 Google 自定义搜索 API 的国家/地区代码值列表?

查看 Google 自定义搜索 API 的文档,“gl”参数的国家/地区代码列表不可用。

gl 参数值是一个由两个字母组成的国家/地区代码。gl 参数会提升原产国与参数值匹配的搜索结果。有关有效值的列表,请参阅国家/地区代码页面。

在这里找到的链接:https : //developers.google.com/custom-search/json-api/v1/reference/cse/list

指向这里:https : //developers.google.com/custom-search/docs/xml_results#countryCodes

其中不包含任何国家/地区代码。

在哪里可以找到有效国家/地区代码值列表,以便确定有效值集?

google-api google-custom-search

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

使用Visual Studio 2008和Windows 7将ASP.Net Web应用程序发布到映射驱动器

我们有一个发布Web应用程序的共享驱动器.当我尝试发布时,我收到以下错误:

------ Publish started: Project: XXX.Web, Configuration: Release Any CPU ------
Connecting to T:\WebSites\XXX\...
Unable to create the Web site 'T:\WebSites\XXX'.  The path 'T:\WebSites\XXX' does not exist or you do not have access. The system cannot find the path specified.
Run Code Online (Sandbox Code Playgroud)

细节

  • 操作系统:Windows 7
  • IDE:Visual Studio 2008(以管理员身份运行)
  • 路径存在?对.

我认为这是一些权限问题,但我不知道从哪里开始.

asp.net visual-studio

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