我有一个通用的方法来查询EF中TEntity类型的对象.如果TEntity实现特定接口,我想将条件添加为where子句.我的方法是:
public TEntity GetByUserID(Guid userID)
{
var query = this.DbSet;
if (typeof (TEntity).IsImplementationOf<IDeletableEntity>())
{
query = query
.Where((x => !((IDeletableEntity)x).IsDeleted);
}
return query
.FirstOrDefault(x => x.UserID == userID);
}
Run Code Online (Sandbox Code Playgroud)
IsImplementationOf <>()是一个方法,它只是返回true/false,顾名思义.
当我为实现IDeletableEntity的实体地址运行它时,我收到一个错误:
无法将类型"地址"强制转换为"IDeletableEntity".LINQ to Entities仅支持转换EDM原语或枚举类型.
我有什么想法可以解决这个LINQ限制?
我有这样的代码:
class Myclass
{
}
Run Code Online (Sandbox Code Playgroud)
我现在想添加一些代码,例如方法.我在}之后然后按下输入期望得到这个(|是光标的位置):
class Myclass
{
|
}
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个:
class Myclass
{
|
}
Run Code Online (Sandbox Code Playgroud)
如果我现在输入一个方法,它就像这样:
class Myclass
{
public void A()
{ }
}
Run Code Online (Sandbox Code Playgroud)
我的缩进配置是正确的,因为一旦按下Ctrl + K,D就会得到修复.我还选中了选项 - >文本编辑器 - > C# - >格式化 - >缩进,并选中了"缩进块内容".
这是在带有Resharper 8.1的Visual Studio 2013上发生的.我暂时暂停了Resharper,没有任何区别.在同一台机器上,我使用带有Resharper的Visual Studio 2012,它可以正常工作.
有没有人知道在写作过程中必须更改哪些配置才能使缩进工作?
我有一个引用System.Net.Http 4.2.0.0的项目(我最近更新到了最新的nuget包)。现在,我在从ASPNETCOMPILER进行编译时收到此警告(尽管我在类库项目中使用System.Net.Http,该类库项目是我的Web项目引用的):
下面的程序集依赖于高于目标版本的.NET Framework版本,并且在运行时可能无法正确加载,从而导致失败:MyClassLibrary,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null。依赖关系为:System.Net.Http,版本= 4.2.0.0,文化=中性,PublicKeyToken = b03f5f7f11d50a3a。您应该确保从属程序集对于目标框架是正确的,或者确保要处理的目标框架是从属程序集的目标框架。MyWebProject,ASPNETCOMPILER中的警告
我的班级库和Web项目都使用.Net 4.7.2,因此没有更高版本可以使用。该Web项目正在将MVC与System.Web.Mvc 5.2.6一起使用。
是什么导致此警告,我该如何消除它?
我正在将现有项目转移到新机器上。我正在使用自定义 Azure Nuget feed,其 url 格式如下:
https://pkgs.dev.azure.com/company/project/_packaging/project.Libs/nuget/v3/index.json
当我尝试构建时,出现错误:
NU1301:无法加载源 https://pkgs.dev.azure.com/company/project/_packaging/project.Libs/nuget/v3/index.json的服务 索引响应状态代码不指示成功:401(未经授权)。
我也无法浏览提要中的包。
我已登录浏览器,可以看到提要的 json 文件的内容,但当然不能在私人会话中看到。
在我的旧机器上,我不记得如何添加提要,而且我也没有在任何地方保存我的用户名/密码(例如在 NuGet.config 中,这似乎是建议的解决方案)。
有谁知道如何向 VS 提供凭据以便它可以访问 feed?