小编alw*_*ing的帖子

如何获取Sql Server数据库中所有模式的列表

我想检索给定的Sql Server数据库中的所有模式的列表.使用ADO.NET模式检索API,我得到了所有集合的列表,但没有"模式"的集合.我可以穿越'Tables','Procedures'(如果需要和其他人)的集合,并获得独特的架构名称列表,但不存在实现相同结果的更简单/短呢?

示例:对于标准'AdventureWorks'数据库,我也想获得以下列表 - dbo,HumanResources,Person,Production,Purchasing,Sales(我省略了其他标准的Schem名称,如db_accessadmin,db_datareader等)

编辑:我可以通过查询系统视图获取模式列表 - INFORMATION_SCHEMA.SCHEMATA但更喜欢使用模式API作为首选.

.net c# sql-server ado.net

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

使用VSTS的ASP.NET Core Web API的CI/CD

我使用Visual Studio 2017(Community Edition)创建了一个ASP.NET Core Web API应用程序.我可以使用Visual Studio成功发布到Azure App Service.

我现在想要使用VSTS设置CI/CD.我使用了Visual Studio中的"配置持续交付"选项,该选项在VSTS中创建了一个项目并创建了一个构建定义.我必须在VSTS中基于'ASP.NET Core'模板创建一个新的构建定义,以避免Nuget恢复错误.现在构建解决方案并运行测试,但"发布"任务完成并发出警告 -

##[warning]No web project was found in the repository. Web projects are identified by the presence of either a web.config file or wwwroot folder in the directory.
Run Code Online (Sandbox Code Playgroud)

"发布工件"任务也有类似的警告 -

##[warning]Directory 'd:\a\1\a' is empty. Nothing will be added to build artifact 'drop'.
Run Code Online (Sandbox Code Playgroud)

显然,构建不会产生任何伪影.

我是否需要将任何构建任务添加到默认的ASP.NET Core构建模板中?如何使用VSTS将我的Web API发布到Azure?

azure continuous-deployment .net-core azure-devops asp.net-core

53
推荐指数
1
解决办法
8248
查看次数

OData究竟是什么?

OData究竟是什么以及开始学习这个新概念,实施数据服务有多重要/必要?

另外,为什么WCF数据服务文档与OData紧密结合?

编辑:基于这里的答案是一个后续问题 - 我不应该尝试实现WCF数据服务没有OData,或者我可以这样做,但这意味着更难以实现(重新发明轮子)?

.net wcf odata

12
推荐指数
1
解决办法
2247
查看次数

使用ADO.NET获取Oracle包中的过程的存储过程元数据

我正在尝试使用标准ADO.NET API - DbConnection.GetSchema调用获取Oracle包中声明的过程的存储过程元数据(过程名称,参数类型,参数名称等).我正在使用ODP驱动程序.

我看到Package列在'Packages'和'PackageBodies'元数据集合中.过程参数显示在"参数"和"过程参数"集合中.我没有看到通过包元数据获取过程信息的方法.即使该过程没有任何参数,此过程的"ProcedureParameters"集合中也有一行.

我的问题:要获取过程元数据,我是否必须查询'ProcedureParameters'集合并搜索具有所需包名称的条目?然后,我可以根据参数信息构建过程元数据.是否有更短或更快的方式来获取相同的信息?

oracle ado.net stored-procedures metadata packages

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

可以为空的枚举或其他元素

考虑以下枚举和该类型的相应可空字段

enum PossibleOptions { One, Two }

PossibleOptions? option;
Run Code Online (Sandbox Code Playgroud)

或者,我可以将枚举和相应的字段声明为

enum PossibleOptions { Unspecified, One, Two }

PossibleOptions option;
Run Code Online (Sandbox Code Playgroud)

这个不可为空的字段将被初始化为第一个值,即'Unspecified',并且我实现了与可空('Unspecified'将替换option.HasValue)相同的结果.

为什么选择Nullable呢?任何性能提升或其他优势?

.net c#

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

使用Action <T>创建任务

我不知何故觉得我错过了一些基本的东西.这是我的问题.

我正在尝试创建一个System.Threading.Tasks.Task实例来执行接受某种类型参数的操作.我以为我可以做点什么

void DoWork(MyClass obj) {} //My action that accepts a parameter of type 'MyClass'

MyClass obj = new MyClass(); 
Action<MyClass> action = DoWork; //action that points to the method
Task task = new Task(action,obj); //task that would execute 'DoWork' with 'obj' as the parameter when I call Start.
Run Code Online (Sandbox Code Playgroud)

显然这不会编译.看来我只能使用一个Action<object>而不是Action<T>一个任务,然后在我的方法中将'对象'转换为T.

如何才能最有效,最有效地实现我的目标?

.net c# task-parallel-library

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

将对象数组序列化为JSON

我有一个类型是字典上的包装 - 基本上是一个键/值存储.我想将这种类型的对象数组序列化为JSON.我是JSON和Json.NET(newtonsoft.json)的新手.

我的类型有一个叫做ToJson的方法,它将字典序列化为json,如下所示

public string ToJson()
{
  return JsonConvert.SerializeObject(this.values);
}    
Run Code Online (Sandbox Code Playgroud)

然后我尝试序列化这些对象的数组

var json = JsonConvert.SerializeObject(objectArray)
Run Code Online (Sandbox Code Playgroud)

当然这不起作用,因为数组中的每个对象都是序列化的,我不知道如何将序列化过程指向每个对象的'ToJson'方法.

如果我传入一个Dictionary对象数组,我可以完全按照我想要的方式工作.

也许我错过了一些序列化属性?

编辑:

在阅读了更多文档之后,我尝试了一种更短的方法(在考虑JsonConverter方法之前) - 使用'JsonPropertyAttribute'.它适用于私有字典成员几乎没有,只是我也得到了成员名称序列化,我不想要这份工作.有什么方法可以通过使用JsonPropertyAttribute序列化成员值而不是成员名称?

.net c# json json.net

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

使派生类中的只读属性可写

我想要实现的目标如下:我在BaseClass中声明了一个属性.如果通过基类'指针访问此属性,则只有getter可用,但如果使用派生类指针,我希望能够获取并设置该属性.所以intellisense甚至不应该显示基本指针的setter.

public class BaseClass
{
     public virtual int MyProperty
     {
         get { return 1; }
         set {;}//This would show the setter in Intellisense
     }
}   

public class DerivedClass : BaseClass
{
     int intValue;

     public override int MyProperty
     {
         set { intValue = value;}
     }
}   
Run Code Online (Sandbox Code Playgroud)

一个现实的例子:
考虑一种情况,你有一个从Person类派生的Parent和Child类.想象一下属性-RestrictionLevel,两者都可以读取它,但只有父级可以设置值.有没有更好的方法来设计这种情况?

c#

6
推荐指数
3
解决办法
3862
查看次数

在迭代DbDataReader之前是否可以使用DbCommand

我有一个简单的应用程序,需要执行某些查询来获取数据库架构信息.我写了一个简单的方法来执行查询并返回一个读者,像这样 -

public static DbDataReader ExecuteQuery(DbConnection connection,string sql)
{
   DbCommand command = connection.CreateCommand();
   command.CommandText = sql;

   using(command)
   {
      return command.ExecuteReader();    
   }
}
Run Code Online (Sandbox Code Playgroud)

调用代码确实关闭连接并适当地处理读取器和连接.

我的问题 - 在迭代读取器之前,是否可以将命令实例(通过使用块完成)放弃?关闭阅读器后,我不希望填充任何OUT参数.ADO.NET API是否有任何严格的准则?

c# ado.net dispose dbdatareader

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

如何比较两个AssemblyName实例?

如何比较两个AssemblyName实例以确定它们是否代表相同的程序集?"等于"方法未被覆盖.

我能想到的一种方法是比较两个实例的'ToString()'结果,但我更喜欢'Equals'语法,因为我需要准备一个'unique'AssemblyName实例的列表(List),并希望使用'包含(AssemblyName项)'方法.

.net c#

5
推荐指数
2
解决办法
2433
查看次数