小编mat*_*uma的帖子

尝试将重复对象插入集合时,抛出的正确.NET异常是什么?

我有一个Asset对象,它有一个属性AssignedSoftware,它是一个集合.

我想确保同一件软件不会多次分配给一个资产.在Add方法中,我检查软件是否已经存在,如果存在,我想抛出异常.

我应该抛出一个标准的.NET异常吗?或者最佳实践是否要求我创建自己的自定义异常?

c# collections exception

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

Linq-to-Sql SubmitChanges没有更新字段......为什么?

我昨天晚上发布了这个问题,这让我发现了一个很大的问题!

我的数据库中有一个名为Units的十进制列,只要我将列的值设置为NON ZERO,并使用新值SubmitChanges列更新.如果我尝试将列的值设置为ZERO,则SubmitChanges不会更新列.

data.Units = this.ReadProperty<decimal>(UnitsProperty);
data.UnitPrice = this.ReadProperty<decimal>(UnitPriceProperty);
data.Price = this.ReadProperty<decimal>(PriceProperty);
Run Code Online (Sandbox Code Playgroud)

我查看了DataContext日志,我可以看到查询中不包含具有ZERO值的字段.即使我试图对代码进行硬编码,Linq也会忽略它.

data.Units = 0;
data.UnitPrice = 0;
data.Price = 0;
Run Code Online (Sandbox Code Playgroud)

不用说这是杀了我!任何想法为什么会这样?

我在SO社区的帮助下想出了我的问题.我的问题是由于我创建我的实体附加时的事实,列的默认值设置为零,所以当它试图将值分配给零时... LinqToSql说嘿......没有改变,所以我没有更新价值.

我现在在做什么......只是为了让它发挥作用如下:

ctx.DataContext.InvoiceItems.Attach(data, true);
Run Code Online (Sandbox Code Playgroud)

这似乎迫使所有值将自己写入数据库.这适用于现在.

.net c# linq linq-to-sql

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

使用Linq2SQL删除记录时出错

我最近收到了客户的错误报告,并且没有解决它的运气.我希望有人能给我一些有关可能出错的信息.

错误似乎很简单:

Csla.DataPortalException:DataPortal.Delete失败(System.InvalidOperationException:Sequence在System.Linq.Enumerable.SingleOrDefault [TSource]中包含多个元素(IEnumerable`1 source)

这是我的DataPortal_Delete方法,它将FileId(PK)作为参数.

private void DataPortal_Delete(SingleCriteria<File, Guid> criteria)
    {
        using (var ctx = ContextManager<Ronin.Data.RoninDataContext>
                    .GetManager(Database.ApplicationConnection, false))
        {
            var data = ctx.DataContext.Files
                    .Single(row => row.FileId == criteria.Value);

            ctx.DataContext.FileSources.DeleteAllOnSubmit(data.FileSources);

            ctx.DataContext.Files.DeleteOnSubmit(data);

            ctx.DataContext.SubmitChanges();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我检查的第一件事是看看是否有另一条记录具有相同的FileId(尽管是主键,这应该是不可能的).所有FileIds实际上都是唯一的.我启动了连接到客户端数据库的应用程序,并试图删除该记录,它没有任何问题.客户端站点的IT人员使用"问题步骤记录器"向我发送用户采取的操作的逐步屏幕截图.没有什么与众不同的,当他使用不同的机器时,他能够毫无错误地删除记录.显然,只有在Windows 7中运行应用程序时才会发生这种情况.

那说,有什么可能导致这个的想法?

csla linq-to-sql

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

Transact-SQL总结经过的时间

我的数据库中有一个表,用于记录特定任务的开始和停止时间.以下是数据示例:

Start                       Stop
9/15/2008 5:59:46 PM        9/15/2008 6:26:28 PM
9/15/2008 6:30:45 PM        9/15/2008 6:40:49 PM
9/16/2008 8:30:45 PM        9/15/2008 9:20:29 PM
9/16/2008 12:30:45 PM       12/31/9999 12:00:00 AM
Run Code Online (Sandbox Code Playgroud)

我想编写一个脚本,总计这些时间框架的经过时间,并且只要有12/31/9999日期,我希望它使用当前日期和时间,因为这仍在进行中.

我如何使用Transact-SQL执行此操作?

sql t-sql sql-server

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

在UpdatePanel中使用ASP.NET FileUpload控件的问题?

我遇到了一个问题,我在UpdatePanel中有一个FileUpload控件.当我尝试保存更改并上传文件时,找不到任何文件.如果我删除UpdatePanel似乎一切正常.

任何想法为什么会这样?是否有解决方法?

截图

asp.net ajax file

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

如何使用ASP.NET MVC创建仪表板用户界面?

我目前正在使用ASP.NET MVC构建应用程序.数据输入页面相当容易编码,我只是为我的业务对象类型的页面制作模型:

namespace MyNameSpace.Web.Views.ProjectEdit
{
    public partial class MyView : ViewPage<Project>
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在努力寻找实现仪表板界面的最佳方法,使用独立的部件,使用ASP.NET MVC,其中每个部分的模型会有所不同?我假设每个部分都是MVC用户控件.

另外,我怎么能这样做,所以每个部分都是可测试的?

asp.net-mvc user-interface dashboard web-parts

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

运行Windows窗体应用程序作为服务?

我有一个我写的Windows窗体应用程序,它对收件箱和数据库进行了一些监视.客户告诉我,每次服务器重新启动时都需要运行.让我感到羞耻的是让客户改变了要求.

我在想...有没有办法让Windows Forms应用程序作为服务运行,以便它自动启动?

澄清

我想尝试不再编写任何代码......如果可能的话!

.net windows-services winforms

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

授权失败时将用户重定向到特定视图?

我有以下代码:

    [AcceptVerbs(HttpVerbs.Post), Authorize(Roles = RoleKeys.Administrators)]
    public ActionResult Edit(int id, FormCollection collection)
    {
        User user = userRepository.GetUser(id);

        try
        {
            this.UpdateModel(user);

            userRepository.Save();

            return this.RedirectToAction("Details", new { id = user.UserId });
        }
        catch
        {
            this.ModelState.AddModelErrors(user.GetRuleViolations());

            return View(new UserFormViewModel(user));
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果当前登录的用户不是管理员角色,则会将其踢回登录屏幕.用户登录,他们只是未授权执行请求的操作.

有没有办法让它们重定向到特定的视图,例如,AccessDenied?

security asp.net-mvc

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

试图压制StyleCop消息SA1513:ClosingCurlyBracketMustBeFollowedByBlankLine

我试图压缩特定属性的以下StyleCop消息:

SA1513: Statements or elements wrapped in curly brackets must be followed by a blank line.
Run Code Online (Sandbox Code Playgroud)

我正在尝试执行以下操作,但它似乎不起作用:

    [SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules", "SA1513:ClosingCurlyBracketMustBeFollowedByBlankLine", Justification = "There are no issues with this code")]
    public string CustomerId
    {
        get
        {
            return this.GetProperty(CustomerIdProperty);
        }
        set
        {
            if (this.IsNew)
            {
                this.SetProperty(CustomerIdProperty, value);
            }
            else
            {
                throw new ReadOnlyException("Id value can only be changed for a new record.");
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我只是做错了吗?或者这是不可能的?这是一个很好的规则,就我的财产而言无效.

更新

尝试从DocumentationRules切换到LayoutRules ...仍然没有抑制.

    [DataObjectField(true, false)]
    [SuppressMessage("Microsoft.StyleCop.CSharp.LayoutRules", "SA1513:ClosingCurlyBracketMustBeFollowedByBlankLine", Justification = "There are no issues with this code")]
    public …
Run Code Online (Sandbox Code Playgroud)

c# stylecop

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

重定向到登录页面,而不是在 Blazor 中弹出登录页面

我有一个 Blazor WebAssembly 应用程序,它使用 Azure AD B2C 进行身份验证。

builder.Services.AddMsalAuthentication(options =>
{
    builder.Configuration.Bind("AzureAdB2C", options.ProviderOptions.Authentication);
});
Run Code Online (Sandbox Code Playgroud)

当用户被重定向到身份验证时,Blazor 会在弹出窗口中显示登录信息。

弹出窗口的问题在于,如果用户点击弹出窗口之外的屏幕,他们可能会将其隐藏起来。

想知道是否有办法强制身份验证重定向到页面而不是显示弹出窗口。

blazor blazor-webassembly

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