相关疑难解决方法(0)

EF Code First中的十进制精度和比例

我正在尝试这种代码优先的方法,但我现在发现System.Decimal类型的属性被映射到decimal(18,0)类型的sql列.

如何设置数据库列的精度?

.net c# entity-framework decimal ef-code-first

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

实体框架迁移错误 - 序列不包含任何元素

命令: add-migration blahblah -verbose
错误:序列不包含任何元素

在收到此错误之前我做了一些事情.我对代码优先模型进行了更改,但尚未运行add-migration.然后我添加了一个EDMX模型来直观地展示一个想法.我意识到EDMX模型弄乱了我的代码所以我删除了它.我试图运行add-migration并得到"序列不包含任何元素".我升级到EF 5并卸载旧的Migrations包,但我的配置除外.然后我add-migration再次尝试,我仍然得到"序列不包含任何元素".以下是错误的其余部分.

System.InvalidOperationException: Sequence contains no elements
   at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
   at System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.GetQualifiedTableName(XDocument model, String entitySetName)
   at System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.<FindRenamedIndependentAssociationColumns>b__ba(<>f__AnonymousType16`2 <>h__TransparentIdentifieraa)
   at System.Linq.Enumerable.<>c__DisplayClass12`3.<CombineSelectors>b__11(TSource x)
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Linq.Enumerable.<ConcatIterator>d__71`1.MoveNext()
   at System.Linq.Enumerable.<ConcatIterator>d__71`1.MoveNext()
   at System.Linq.Enumerable.<DistinctIterator>d__81`1.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.Diff(XDocument sourceModel, XDocument targetModel, String connectionString)
   at System.Data.Entity.Migrations.DbMigrator.Scaffold(String migrationName, String namespace, Boolean ignoreChanges)
   at System.Data.Entity.Migrations.Design.MigrationScaffolder.Scaffold(String migrationName, Boolean ignoreChanges)
   at System.Data.Entity.Migrations.Design.ToolingFacade.ScaffoldRunner.Scaffold(MigrationScaffolder scaffolder)
   at System.Data.Entity.Migrations.Design.ToolingFacade.ScaffoldRunner.RunCore()
   at System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.Run()
Sequence contains no elements
Run Code Online (Sandbox Code Playgroud)

.net entity-framework ado.net-entity-data-model edmx ef-code-first

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

实体框架十进制舍入在投影中不一致

在将整数列与十进制值相乘并添加整数列时,EF6在处理舍入方面似乎不一致.

// CREATE TABLE MyTable (MyIntValue INT NOT NULL)
// INSERT INTO MyTable (MyIntValue) VALUES (10)
const int IntScale = 5;
const decimal DecimalScale = 5;
const decimal DecimalScale2 = 5.0m;
context.Set<MyTable>()
    .Select(row => new
    {
         WithFloats = 0.5f + (row.MyIntValue * 5.0f),                         // 50.5
         WithDecimals = 0.5m + (row.MyIntValue * 5.0m),                       // 51 
         WithDecimals2 = 0.5m + ((decimal)row.MyIntValue * 5.0m),             // 50.5            
         WithDecimals3 = 0.5m + ((decimal)row.MyIntValue * IntScale),         // 51
         WithDecimals4 = 0.5m + ((decimal)row.MyIntValue * (decimal)IntScale) // …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework decimal rounding

7
推荐指数
0
解决办法
494
查看次数

带有 3 个小数位的实体框架货币

在首先使用带有代码的 EF6 的 asp.net 5+ 中,如何存储带有 3 个小数点的十进制值?

即,我的字段需要能够存储 272.724

目前我有:

[DataType(DataType.Currency)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:c}")]
[DisplayName("Report Fee")]
public decimal ReportFee { get; set; }
Run Code Online (Sandbox Code Playgroud)

我试过添加:

[Column(TypeName = "decimal(18,3)")]
Run Code Online (Sandbox Code Playgroud)

但我收到错误:

The store type 'decimal(18,3)' could not be found in the SqlServer provider manifest
Run Code Online (Sandbox Code Playgroud)

c# asp.net entity-framework

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