草庐IT

first_param

全部标签

c# - 使用 EntityFramework 6 Code-First 播种期间的 IDENTITY_INSERT

我有一个具有Auto-identity(int)列的实体。作为数据种子的一部分,我想在我的系统中为“标准数据”使用特定的标识符值,之后我想让数据库整理出id值。到目前为止,作为插入批处理的一部分,我已经能够将IDENTITY_INSERT设置为On,但EntityFramework不会生成包含Id的插入语句.这是有道理的,因为模型认为数据库应该提供值,但在这种情况下,我想提供值。模型(伪代码):publicclassReferenceThing{[Key][DatabaseGenerated(DatabaseGeneratedOption.Identity)]publicintId{g

c# - params 过载明显的歧义 - 仍然可以编译和工作吗?

我们刚刚在我们的代码中发现了这些:publicstaticclassObjectContextExtensions{publicstaticTFind(thisObjectSetset,intid,paramsExpression>[]includes)whereT:class{...}publicstaticTFind(thisObjectSetset,intid,paramsstring[]includes)whereT:class{...}}如您所见,除了params之外,它们具有相同的签名。它们以多种方式使用,其中之一:DBContext.Users.Find(userid.V

c# - list.First()、list.ElementAt(0) 和 list[0] 的区别?

根据标题...list.First()、list.ElementAt(0)和list[0]之间有什么真正的区别吗? 最佳答案 如果源列表不包含任何元素,.First()将抛出异常。SeetheRemarkssection.为避免这种情况,请使用FirstOrDefault()。.ElementAt(0)如果索引大于或等于列表中的元素数,将抛出异常。为避免这种情况,请使用ElementAtOrDefault(0)。如果您使用的是LINQToSQL,则无法将其转换为sql,而.First()可以转换为TOP1。如果索引大于或等于列表中的

c# - Entity Framework 6 Code First - 必需的枚举数据类型不起作用

我正在使用必需的枚举字段生成数据库表。但是,在提供表格时,可以省略提供枚举字段:EF不会抛出任何错误消息,但会提供0值的字段。你能帮我理解发生了什么吗?谢谢publicenumTestEnum{test1=1,test2=2,test3=3,test4=4}publicclassTestEnumClass{[Key]publicintid{get;set;}[Required(ErrorMessage="Required"),Display(Name="TestEnum")]publicTestEnumtest{get;set;}} 最佳答案

c# - Entity Framework Code First - 更改表名

我想首先更改使用EntityFramework代码生成的其中一个表的名称。我已经创建了数据库,但现在我想更改名称。我已将项目中对"Metadatas"表的所有引用更新为"Metadata"。但是在数据库中生成的表仍然是“元数据”。我已经删除并重新创建了数据库,但这似乎也不起作用。使用TableAttribute也不行。我该怎么办?谢谢。[Table("Metadata")]publicclassMetadata{[Required,Key]publicintMetadataId{get;set;}[Required,ScaffoldColumn(false)]publicintDocu

c# - 是否可以有多个 "params"参数?

在C#中是否可以有多个params参数?像这样:voidfoobar(paramsint[]foo,paramsstring[]bar)但我不确定这是否可行。如果是,编译器将如何决定在何处拆分参数? 最佳答案 您只能有一个参数参数。您可以有两个数组参数,调用者可以使用数组初始值设定项来调用您的方法,但只能有一个params参数。voidfoobar(int[]foo,string[]bar)...foobar(new[]{1,2,3},new[]{"a","b","c"}); 关于c#-

c# - EF6 Code First 具有通用存储库和依赖注入(inject)和 SoC

经过大量阅读和尝试后EntityFramework最新的稳定版本(6.1.1)。我正在阅读很多关于是否使用EF6的存储库的矛盾。或EF一般来说,因为它是DbContext已经提供了一个存储库和DbSetUoW,盒子外面。让我首先解释我的解决方案在项目方面包含的内容,然后我将回到矛盾。它有一个类库项目,还有一个asp.net-mvc项目。类lib项目是数据访问,其中Migrations为CodeFirst启用.在我的类lib项目中,我有一个通用存储库:publicinterfaceIRepositorywhereTEntity:class{IEnumerableGet();TEntity

c# - 如何使用 Entity Framework DB First 的现有枚举

我正在使用EntityFramework5,优先使用数据库。我知道如何在我的模型上定义枚举,并将字段类型设置为该枚举。现在,我需要将字段MyField映射到外部定义的枚举,即不在EF模型(OtherNamespace.MyEnum)中。设计师不允许我将类型设置为模型之外的任何内容。我尝试手动编辑edmx文件,但这会导致错误:Error10016:Errorresolvingitem'MyField'.Theexceptionmessageis:'Unresolvedreference'OtherNamespace.MyEnum'.'.OtherNamespace.MyEnum被我的项目

c# - 无法将值类型数组转换为 params 对象 []

如果C#可以将int转换为对象,为什么不能将int[]转换为object[]?简单程序示例:voidMain(){vara=newString[]{"0","1"};varb=newint[]{0,1};AssertMoreThan1(a);//NoExceptionAssertMoreThan1(b);//Exception}staticvoidAssertMoreThan1(paramsobject[]v){if(v.Length==1){thrownewException("TooFewParameters");}} 最佳答案

c# - Entity Framework Code First - 为什么我不能以这种方式更新复杂的属性?

我正在使用EntityFramework4.1(代码优先)开发一个小型示例项目。我的类(class)如下所示:publicclassContext:DbContext{publicIDbSetPeople{get;set;}publicIDbSetEmployeeTypes{get;set;}}publicclassPerson{[Key]publicintKey{get;set;}publicstringFirstName{get;set;}publicstringLastName{get;set;}virtualpublicEmployeeTypeEmployeeType{get;