相关疑难解决方法(0)

将DataAnnontations添加到生成的部分类

我有一个Subsonic3 Active Record生成的部分User类,我在一个单独的部分类中扩展了一些方法.

我想知道是否有可能将数据注释添加到一个部分类的成员属性中,它在另一个我尝试过的Subonic Generated上声明它.

public partial class User
{
    [DataType(DataType.EmailAddress, ErrorMessage = "Please enter an email address")]
    public string Email { get; set; }

    ...
}
Run Code Online (Sandbox Code Playgroud)

该示例给出了"已定义成员"错误.

我想我之前可能已经看过一些关于我正在尝试使用Dynamic Data和Linq2Sql的例子.

subsonic validation partial-classes subsonic3 data-annotations

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

Entity Framework Core 不尊重 Identity 列

实体框架不尊重我的Identity专栏。它坚持尝试将一个值插入到Identity我的 MS SQL DB 中的(自动增量)列中,这显然是一个错误,因为数据库应该提供该值。

System.Data.SqlClient.SqlException: 'Cannot insert explicit value for identity column in table 'Assignee' when IDENTITY_INSERT is set to OFF.'
Run Code Online (Sandbox Code Playgroud)

它为什么要这么做?我将其与涉及一个表和一列的模式配对:

CREATE TABLE [dbo].[Assignee](
  [AssigneeID] INT IDENTITY(-1, 1) NOT NULL
CONSTRAINT [Assignee$PrimaryKey] PRIMARY KEY CLUSTERED 
( [AssigneeID] ASC ))
Run Code Online (Sandbox Code Playgroud)

将此模式发布到本地数据库后,我用它Scaffold-DbContext来生成实体和上下文类。生成的Assignee类仅包含此公共属性。

public int AssigneeId { get; set; }
Run Code Online (Sandbox Code Playgroud)

上下文仅指Assignee此处:

modelBuilder.Entity<Assignee>(entity =>
{
  entity.Property(e => e.AssigneeId).HasColumnName("AssigneeID");
});
Run Code Online (Sandbox Code Playgroud)

四处搜索,我看到人们声称要让 EF 尊重 Identity 列,上下文应该使用ValueGeneratedOnAdd(). 换句话说,上下文类中的行应为:

entity.Property(e => e.AssigneeId).HasColumnName("AssigneeID")
  .ValueGeneratedOnAdd();
Run Code Online (Sandbox Code Playgroud)

我对此有两个问题: …

c# t-sql entity-framework auto-increment entity-framework-core

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

什么是好友类,我如何使用它来为现有类添加注释?

我已经看到术语"好友类"用作"如何在另一个文件中为部分类添加注释"之类的问题的"答案",但这些答案假设我知道Buddy类什么,并且代码示例假设我理解这是如何工作的原因.

我无法看到C#中的伙伴类是什么的简单解释,以及它如何/为什么允许我修改现有类,例如向属性添加注释.

.net c# buddy-class data-annotations

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