小编And*_*ark的帖子

SQL Server 2012列标识增量在第7个条目上从6跳到1000+

我有一个奇怪的情况,我的SQL Server 2012数据库中的自动标识int列没有正确递增.

假设我有一个使用int自动标识作为主键的表,它偶尔会跳过增量,例如:

1,2,3,4,5,1004,1005

这是在随机数量的随机时间表上发生的,无法复制它以查找任何趋势.

这是怎么回事?有办法让它停止吗?

sql sql-server identity sql-server-2012

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

指定的值不符合所需的格式yyyy-MM-dd

我有一个使用Data Annotations,Entity-Framework Jquery 2.1.3和Jquery UI 1.11.4的.Net MVC 5应用程序.

当我使用英国格式"dd/MM/YYYY"渲染类型为date的输入的编辑表单时; 使用Google Chrome时出现以下错误消息:

指定值'10/10/2001'不符合所需格式'yyyy-MM-dd'.jQuery的2.1.3.js:5317

模型

public class MyModel
{
    [Column(TypeName = "date"), DataType(DataType.Date), Display(Name = "My date")]
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
    public string MyDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

标记

<input class="text-box single-line" data-val="true" data-val-date="The field My date must be a date." id="MyDate" name="MyDate" type="date" value="10/10/2001" />
Run Code Online (Sandbox Code Playgroud)

在输入控件中正确设置了该值,但日期未显示在浏览器中.我首先认为这是jQuery的一个问题,因为它出现了jQuery脚本文件,但在IE和Firefox中测试时一切正常.

然后我认为这是我在Chrome中的区域设置,因为默认情况下Chrome认为每个人都在英国,我将区域设置更改为英国,但仍会出现同样的问题.

一个简单的解决方法是将我的模型中的格式更改为通用格式,但对于英国用户来说,这有点陌生.

有没有办法告诉chrome接受"dd/MM/YYYY"中的日期格式?

asp.net-mvc jquery datetime google-chrome data-annotations

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

在TFS 2012中使用持续集成进行Auto Deploy

我已经为WCF项目设置了持续集成,并希望使用MSBuild Arguments自动将应用程序部署到远程服务器,但它没有部署.

运行新的Build时,所有测试都会通过,所有项目都会构建,但网站没有部署.此外,我从构建中得到的任何错误都没有说出错.

我在远程服务器上打开了端口8172,以确保可以与IIS建立连接,甚至禁用防火墙.

在构建配置中,我指定了以下参数;

/p:DeployOnBuild=True /p:DeployTarget=MsDeployPublish /p:DeployIisAppPath="Default Web Site/MYSite" /p:MsDeployServiceUrl=http://mysite.com /p:username=MySite\Administrator /p:password=thePassword
Run Code Online (Sandbox Code Playgroud)

我从以下示例编译了此配置:

http://vishaljoshi.blogspot.co.uk/2010/11/team-build-web-deployment-web-deploy-vs.html

http://www.chrissurfleet.co.uk/post/2011/07/21/Setting-Up-Continuous-Deployment-In-TFS.aspx

我已配置服务器的IIS以启用远程连接,我可以从构建服务器远程管理IIS.此外,我已使用Visual Studio 2012发布选项成功部署了应用程序.

任何人都可以看到我的MS Build Arguments有问题吗?我错过了什么吗?

任何帮助都会非常感激

更新:

我已检查构建服务器以检查MS部署是否已安装并已安装Web Deploy 3.0以确保这是capabale,但尚未解决我的问题.

我检查了IIS连接日志,看看是否正在建立与IIS的远程连接,并且我的构建服务器与应用服务器之间没有连接.

我已尝试使用以下代码手动运行MSBuild.exe以在解决方案和项目服务器上进行项目:

MSBuild.exe "项目位置"/ P:DeployOnBuild =真/ P:DeployTarget = MsDeployPublish/P:MSDeployPublishMethod = WMSVC/p:DeployIisAppPath = "默认网站/应用"/ P:MsDeployServiceUrl = HTTP://应用程序服务器:8172/MSDeploy.axd/p:AllowUntrustedCertificate = True/p:CreatePackageOnPublish = False/p:Username = username/p:Password = password

MSBuild正在成功构建项目,但没有尝试部署它.

有任何想法吗?

deployment tfs continuous-integration tfsbuild web-deployment

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

将epoch/unix转换为Datetime

这个问题不是重复,这个问题演示了转换方法的问题,而不是如何执行转换.完整阅读问题.

我有一个时间戳,我相信是一个unix时间戳,当使用以下转换器时,它正确转换印章

价值:1365151714493

http://www.epochconverter.com/

我环顾四周,发现了一个例子就如何将其转换为datetime obect和方法看似简单,创建一个DateTime对象,并设置日期威力晚上1/1/1970,并添加值作为第二:

public static DateTime? ConvertUnixTimeStamp(string unixTimeStamp)
{
    return new DateTime(1970, 1, 1, 0, 0).AddSeconds(Convert.ToDouble(unixTimeStamp));
}
Run Code Online (Sandbox Code Playgroud)

问题是每当我用上面的值调用这个mehod我得到一个超出范围异常的值.

我是否需要先对价值做任何事情?字符串转换为双ok.调用时抛出异常AddSeconds(double)methos

c# datetime unix-timestamp

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

如何强制Unity创建新实例?

使用Unity Application块,当我们UnityContainer.Resolve<T>() 在WCF上下文中调用方法时,如何强制Unity配置创建对象的新实例?

c# wcf design-patterns dependency-injection unity-container

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

为什么实体框架缺少表中以"状态"结尾的最后一个s

这是一个非常奇怪的错误,我已经在线查看,看不出有任何明显的原因发生这种情况.

我正在使用Database First Entity Framework第5版,并添加了4个表:

  • 工作状态
  • 工作状态
  • SubJobStatus
  • SubJobStageStatus

JobStatus,SubJobStatus和SubJobStageStatus都有一个WorkStatus的外键约束.

我已更新我的edmx以包含这些表但由于某种原因,每个表都缺少单词Status中的最后一个.因此现在调用表及其导航属性:

  • WorkStatu
  • JobStatu
  • SubJobStatu
  • SubJobStageStatu

有谁知道为什么会这样?

entity-framework

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

TFS分支推荐

我有一个名为"Framework"的解决方案,它是我的业务逻辑和数据事务的C#程序集.

我有4个应用程序使用Framework,1个网站,1个Console应用程序和3个其他类型的应用程序.

$/TeamProject
    /Framework
        /Dev
        /Main
        /Release
    /WebApp
        /Dev
        /Main
        /Release
    /WCFApp
        /Dev
        /Main
        /Release
Run Code Online (Sandbox Code Playgroud)

我在一个团队项目中拥有所有这些,每个程序集/应用程序都在自己的文件夹下.

我想为共享框架程序集的每个应用程序使用分支功能,但我不知道将应用程序与Framework一起分支的最佳方法是什么?

有什么建议?

我知道分支和合并是如何工作的,但是所有的例子都只展示了包含在1个文件夹中的所有内容.

tfs tfs2010 branching-and-merging

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

Html.ActionLink 扩展

我正在尝试扩展 Html.ActionLink,因为我想为共享组件(在本例中为模态)添加自定义元数据。

我的目标是进一步扩展 .Net MVC 中的 LinkExtensions 类,它将向 html 类属性添加一个值并添加一个自定义数据属性,结果如下:

<a href="/Controller/Action/id" class="show-in-modal style1 style2" data-title="Modal title">Link</a>
Run Code Online (Sandbox Code Playgroud)

帮助器看起来类似于 MVC 方法:

public static MvcHtmlString ModalLink(this HtmlHelper htmlHelper, string title, string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes)
{
    // Add 'show-in-modal' class here
    // Add 'data-title' attribute here

    return htmlHelper.ActionLink(linkText, actionName, controllerName, routeValues, htmlAttributes);
}

@Html.ModalLink("Modal title", "Link", "action", "controller", new { id = "id" }, new { @class = "style1 style2" });
Run Code Online (Sandbox Code Playgroud)

我遇到的这个问题是我无法轻松修改 htmlAttributes 对象以添加我的类名和数据属性,这是有道理的,因为这是一个只读的匿名对象。

有没有一种方法可以轻松应用所需的值/元数据,而不必通过反射将所有内容分开并重新组合在一起?

我注意到 MVC …

c# asp.net-mvc html-helper tagbuilder razor

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

如何将 CORS 标头添加到 401/403 响应中?

我已经构建了一个 spa 网站,前端使用 Angular,服务器端使用 asp.net Core Web Api 3.0。

我正在尝试配置 Windows 身份验证,感谢这篇文章到目前为止一切顺利!但是...当 Api 正确返回 401/403 时,CORS 标头会出现问题,cors 标头会丢失。这是一个例子:

General:
Status Code: 403 Forbidden
Remote Address: [::1]:44389
Referrer Policy: no-referrer-when-downgrade
Response-Headers:
Date: Wed, 20 Nov 2019 16:33:57 GMT
Persistent-Auth: true
Server: Microsoft-IIS/10.0
Transfer-Encoding: chunked
X-Powered-By: ASP.NET
Run Code Online (Sandbox Code Playgroud)

这是我使用该属性时生成的[Authorise]。我遇到的问题是,当 CORS 标头丢失时,角度内的状态代码为 0,因此我的 http 拦截器不知道未经授权,并且无​​法正确处理重定向。

我尝试使用中间件手动添加标头StartUp

app.Use(async (context, next) =>
{
    context.Response.OnStarting(() =>
    {
        context.Response.Headers.Add("Access-Control-Allow-Origin", "http://localhost:4200");

        return Task.FromResult(0);
    });

    await next();
});
Run Code Online (Sandbox Code Playgroud)

但这不起作用,中间件仍然删除标头。

有趣的是,如果我删除授权属性并在控制器方法中返回 401/403:

[HttpGet]
public IActionResult …
Run Code Online (Sandbox Code Playgroud)

authorization cors asp.net-core-webapi angular

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

多个包括使用实体框架和存储库模式

我正在使用实体框架和存储库模式来进行所有数据访问,当使用表格导航时,我注意到当我获得第一个对象并引用导航对象中的字段时,正在运行2个查询.因为我在数据库中有很多关系,使用这种技术导航属性可能会导致性能开销.

我已经研究了这个Include(string tableName)方法,这将非常有效(如果我没有使用通用RP),但这只需要一个表名.我已成功地复制这个在我的仓库模式的一个包括通过改变我从那里classsEntityObject,但我怎么可以有多个包含在一个查询中使用一个仓库模式?

这是我的代码:

public class GenericRepository<T> : IRepository<T> where T : EntityObject, new()
{
    private Entities _Context;
    private ObjectSet<T> _ObjectSet;

    public IQueryable<T> FindBy(System.Linq.Expressions.Expression<Func<T, bool>> predicate, string include)
    {
        // This works OK
        return this._ObjectSet.Include(include).Where(predicate);
    }

    public IQueryable<T> FindBy(System.Linq.Expressions.Expression<Func<T, bool>> predicate, param string[] include)
    {
        // This will not work but is what I am trying to do
        return this._ObjectSet.Include(include).Where(predicate);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# generics entity-framework repository-pattern

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