小编Dan*_*iel的帖子

相关表上的不同模式名称 - 实体框架

是否可以在相关表格上使用与[dbo]不同的模式名称?

我先使用代码.

例:

ApplicationRole.cs

public class ApplicationRole
{
    public Guid ApplicationRoleId { get; set; }
    public string Name { get; set; }
    public virtual ICollection<ADGroup> ADGroups { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

ADGroup.cs

public class ADGroup
{
    public Guid ADGroupId { get; set; }
    public string Name { get; set; }
    public virtual ICollection<ApplicationRole> ApplicationRoles { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

ApplicationRoleConfiguration.cs

public class ApplicationRoleConfiguration : EntityTypeConfiguration<ApplicationRole>
{
    public ApplicationRoleConfiguration()
    {
        ToTable("T_ApplicationRoles", "LabConfig");

        this.HasKey(a => a.ApplicationRoleId);

        this.Property(t => t.ApplicationRoleId)
            .HasColumnName("ApplicationRole_GUID")
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);


    } …
Run Code Online (Sandbox Code Playgroud)

entity-framework ef-code-first

3
推荐指数
1
解决办法
736
查看次数

使用TransactionScope()进行事务管理

我需要创建一个简单的dotnet应用程序,它将在循环内调用存储过程(存储过程接受几个参数并将它们添加到表中).要求是所有行都插入或非插入.

为了确保这一点,我使用过:

using (TransactionScope scope = new TransactionScope())
{
    foreach (EditedRule editedRules in request.EditedRules)
    {
            ...stored procedure call
    }
}
Run Code Online (Sandbox Code Playgroud)

我以前从未使用TransactionScope过,有人可以告诉我这段代码是否有效,并且我的所有行都会被回滚.

如果有更好的方法,我也将不胜感激.

.net c# sql-server asp.net

3
推荐指数
1
解决办法
753
查看次数

如何从C#中的TimeSpan中删除毫秒?

我是c#的新手并使用Windows窗体.这段代码的结果是:01:38:07.0093844.任何人都知道如何从结果(ts)中删除毫秒部分(0093844)我希望结果看起来像这样:01:38:07(H:mm:ss)没有毫秒.

请帮帮忙.谢谢

string OldDateTime = "2016-03-02 13:00:00.597"; //old DateTime
DateTime CurrentDateTime = DateTime.Now;

TimeSpan  ts = CurrentDateTime.Subtract(Convert.ToDateTime(OldDateTime)); //Difference

//result of ts = 01:38:07.0093844
Run Code Online (Sandbox Code Playgroud)

c#

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

如何在MVC中使用RedirectToRoute(“ routeName”)?

我只是对为什么我的RedirectToRoute()方法不起作用感到困惑。我有一个像这样的RouteConfig.cs文件

routes.MapRoute(
    "pattern1",
    "{action}",
    new { controller = "Home", action = "About" }
);

routes.MapRoute(
    "pattern2",
    "{controller}/{action}/{id}",
    new { controller = "Admin", action = "Index", id = UrlParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)

在此配置上,默认控制器Home和action About被调用,现在在action方法中,我使用以下值调用RedirectToRoute():

public ActionResult Index()
{
    return View();
}
public ActionResult About()
{
    return RedirectToRoute("pattern2");
}
Run Code Online (Sandbox Code Playgroud)

为什么RedirectToRoute()不调用Admin / Index操作

asp.net-mvc redirecttoroute

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

如何从主机检查docker容器中是否存在文件夹

我想检查我的 docker 容器中是否存在一个名为mysqlserver. 容器是一台 Linux 机器。

以下命令正在运行:

# both commands print the current working directory
docker exec -it mysqlserver pwd
# output: /
docker exec -it mysqlserver 'pwd'
# output: /
Run Code Online (Sandbox Code Playgroud)

所以我假设我可以检查文件夹的存在,如:

docker exec -it mysqlserver test -d /var
# output: nothing
Run Code Online (Sandbox Code Playgroud)

即使是不存在的文件夹也不会输出任何内容:

docker exec -it mysqlserver test -d /var
# output: nothing
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能评估容器内是否存在文件夹?

docker

3
推荐指数
1
解决办法
6902
查看次数

如何从 Entity Framework Core 中的 appsettings.json 设置连接字符串

我正在使用 Entityframework Core 和代码优先方法设置一个新数据库。我已经在下面的代码清单中设置了一个上下文类,以及数据库表的所有需要​​的类。现在我想用

using (var context = new MyContext())
{
    context.Database.EnsureCreated();
}
Run Code Online (Sandbox Code Playgroud)

但我得到的是一个错误,连接字符串不能为空。

我的 Connectionstring 在 appsettings.json 文件中设置,我在项目构建时将其复制到输出目录。

我尝试了不同的方法来从 appsettings 文件中获取连接字符串,但结果都相同。在 Startup 类的 Configuration 属性中,我可以看到 appsettings 文件已正确加载,但是当我想获取字符串时

ConnectionString = Configuration["Connectionstrings:MyConnection"];
Run Code Online (Sandbox Code Playgroud)

ConnectionString 始终为空。

我的 Startup.cs 文件中有这个:

 public class Startup
 {
    public static string ConnectionString { get; private set; }
    public IConfigurationRoot Configuration { get; set; }

    public Startup(IHostingEnvironment _environment)
    {
        Configuration = new ConfigurationBuilder()
                        .SetBasePath(_environment.ContentRootPath)
                        .AddJsonFile("appsettings.json")
                        .Build();
    }
Run Code Online (Sandbox Code Playgroud)

在配置 - 方法中有以下内容

using (var context = new MyContext())
{
    context.Database.EnsureCreated();
} …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework-core .net-core

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

Azure DevOps yaml 管道,下载的工件为空

将管道从经典转换为 YAML(所以我知道它有效)。

我构建并发布工件任务如下所示:

  - task: PublishPipelineArtifact@1
    displayName: 'Publish Pipeline Artifact'
    inputs:
      targetPath: '$(Build.ArtifactStagingDirectory)/MyArtifact'
      artifact: MyArtifact
Run Code Online (Sandbox Code Playgroud)

构建时的结果如下所示:

在此输入图像描述

然后我想将其部署到 web 应用程序 YAML:

- stage: Dev
  jobs: 
  - job: DeployApp
    displayName: Deploy Web App
    pool:
      name: myPrivate
      demands: msbuild
    steps:
    - task: DownloadPipelineArtifact@2
      inputs:
        artifact: MyArtifact
    - task: AzureRmWebAppDeployment@4
      displayName: 'Deploy App'
      inputs:
        WebAppKind: 'Web App On Windows'
        azureSubscription: 'edited out...'
        WebAppName: webAppName
        package: '$(System.ArtifactsDirectory)'
        enableXmlTransform: true
Run Code Online (Sandbox Code Playgroud)

这会在 Azure DevOps 中产生以下输出:

在此输入图像描述

上有差异,但由于尺寸非常匹配,我很高兴。

然后我在部署中遇到错误,因此我开始查看 Kudo,并可以看到在 SitePackages 中我的所有包都是 1 kb(或空...)。我预计 61.2 MB。

在此输入图像描述

我采取了我的工作经典部署,在那里我有这一行:

packageForLinux:'$(System.DefaultWorkingDirectory)/_MyArtifact/MyArtifact/MyApplication.zip' …
Run Code Online (Sandbox Code Playgroud)

azure-devops azure-pipelines

3
推荐指数
1
解决办法
5391
查看次数

ServiceStack联接3个表

是否可以使用ServiceStack联接2个以上的表?我尝试过类似的方法,但是我需要链接evrything:

// Join PatientDetails and BedDetails
SqlExpression<PatientDetails.PatientDetails> q = _dbConnection.From<PatientDetails.PatientDetails>();
q.Join<PatientDetails.PatientDetails, BedDetails.BedDetails>((patient, bed) => patient.ByBedId == bed.BedDetailsId);
List<PatientDetails.PatientDetails> PatientBedJOIN = _dbConnection.Select(q);

// Join PatientSession and PatientDetails
SqlExpression<PatientSession> q1 = _dbConnection.From<PatientSession>();
q1.Join<PatientSession, PatientDetails.PatientDetails>((session, patientd) => session.ByPatientId == patientd.PatientDetailsId);
List<PatientSession> SessionPatientJOIN = _dbConnection.Select(q1);
Run Code Online (Sandbox Code Playgroud)

我正在使用OrmLite和Sqlite,谢谢

c# sqlite servicestack ormlite-servicestack

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

在Entity Framework 6中使用MySQL和MSSQL

我正在开发一个Web服务。

该服务的背后是两种方法:一种是从MySQL连接获取实体,另一种是从MSSQL Server连接获取实体。

我有两个连接字符串。

我想有两个上下文,它们是完全分开的。

但是我无法管理这个。

有任何想法吗?

mysql sql-server entity-framework-6

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

从Visual Studio Team Services(VSO)部署Azure WebApp

我尝试在azure门户中为给定的Web应用程序设置我的部署源.

当我导航到Web App > 部署源 > 选择源 > Visual Studio Team Services时,我无法选择我的Visual Studio Team Services帐户.

在此输入图像描述

选择Visual Studio Team Services后,无法选择任何项目.相信我,有项目......

在此输入图像描述

azure azure-deployment azure-web-sites azure-management-portal azure-devops

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

获取数据表列的总和

我在DataTable中有以下值

Affiliate Name | Call
---------------|-----
A              |   2
B              |   1  
B              |   0
A              |   3
Run Code Online (Sandbox Code Playgroud)

我怎样才能检索到的总数CallAffiliate Name“A”。在上面的示例中,它应该返回5。

foreach (DataRow row in dt.Rows)
{
    string CallsOffered = //Get count
}
Run Code Online (Sandbox Code Playgroud)

c# linq datatable ado.net

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

无法找到运行时clr.dll来使用sos

我有简单的控制台应用程序(目标框架4.5.2):

using System;

public class SosTest
{
    public class Foo
    {
        public Foo()
        {
            Console.WriteLine("Creation of foo");
        }
    }

    static void Main(string[] args)
    {
        var n1 = new Foo();
        var n2 = new Foo();
        Console.WriteLine("Allocated objects");
        Console.WriteLine("Press any key to invoke GC");
        Console.ReadKey();
        n2 = n1;
        n1 = null;
        GC.Collect();
        Console.WriteLine("Press any key to exit");
        Console.ReadKey();
    }
}
Run Code Online (Sandbox Code Playgroud)

我想看看托管堆的状态.我做了以下步骤:

  1. 打开windbg
  2. 使用windbg的"open executable"命令打开我的程序的exe文件
  3. 执行命令加载sos .load MicrosoftNet\Framework\v4.0.30319\sos.dll
  4. 执行命令以查看堆的状态 !eeheap -gc

但在最后一个命令中我得到以下消息:

无法找到运行时DLL(clr.dll),0x80004005扩展命令需要clr.dll才能执行某些操作.

为什么命令!eeheap -gc失败?

如果它会帮助它是lm命令的结果:

0:000> lm
start …
Run Code Online (Sandbox Code Playgroud)

c# debugging clr windbg sos

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

System.Text.Json 使用构造函数反序列化

我正在使用 System.Text.Json 进行反序列化。

我想使用构造函数来SerialNo(string serialNo)构建我的对象。

public class SerialNo
{
    [JsonConstructor]
    public SerialNo(string serialNo)
    {
        if (serialNo == null) throw new ArgumentNullException(nameof(serialNo));

        if (string.IsNullOrWhiteSpace(serialNo)) throw new Exception("My exception text");

        Value = serialNo.Trim('0');
    }

    public string Value { get; set; }
}

public class Item
{
    public SerialNo SerialNo { get; set; }

    public string AffiliationOrgCode { get; set; }
}

public class Root
{
    public List<Item> Item { get; set; }
}

public class DeserializationTestsWithSystemTextJson
{
    private const string …
Run Code Online (Sandbox Code Playgroud)

c# system.text.json

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