小编Jam*_*mes的帖子

实体框架“无法从类型为* []的固定大小的数组中删除项目”

我正在使用EntityFramework来保存我的实体。

我的问题是,当通过WCF发送在Silverlight中构造的实体进行持久化时,出现错误“无法从类型为'CarterShop.Commerce.Entities.ManufacturedItemRequirement []'的固定大小的数组中删除项目。

我正在插入一个具有ManufacturedItemRequirements ICollection的实体(ManufacturedItem)。实体框架应该允许我将其作为POCO对象“添加”到DbContext并坚持下去,但是由于某种原因它抱怨集合。

有人遇到过这个问题吗?基本上我不知道它在抱怨什么。错误来自System.Data内部:

at System.Data.Objects.Internal.PocoPropertyAccessorStrategy.CollectionRemove(RelatedEnd relatedEnd, Object value)
   at System.Data.Objects.Internal.EntityWrapper`1.CollectionRemove(RelatedEnd relatedEnd, Object value)
   at System.Data.Objects.DataClasses.EntityCollection`1.RemoveFromObjectCache(IEntityWrapper wrappedEntity)
   at System.Data.Objects.ObjectStateManager.DegradePromotedRelationships()
   at System.Data.Objects.DataClasses.RelationshipManager.AddRelatedEntitiesToObjectStateManager(Boolean doAttach)
   at System.Data.Objects.ObjectContext.AddObject(String entitySetName, Object entity)
   at System.Data.Entity.Internal.Linq.InternalSet`1.<>c__DisplayClass5.<Add>b__4()
   at System.Data.Entity.Internal.Linq.InternalSet`1.ActOnSet(Action action, EntityState newState, Object entity, String methodName)
   at System.Data.Entity.Internal.Linq.InternalSet`1.Add(Object entity)
   at System.Data.Entity.DbSet`1.Add(TEntity entity)
   at Commerce.Model.Repositories.RepositoryBase`1.Add(T entity) in C:\OclProjects 4.1\CarterShop\CarterShop.Commerce.Model\Repositories\RepositoryBase.cs:line 28
   at CarterShop.Commerce.Services.Implementation.StockItemService.CreateManufacturedItem(ManufacturedItem manufactedItem, Boolean createDefinitionAswell) in C:\OclProjects 4.1\CarterShop\CarterShop.Commerce.Services\Implementation\StockItemService.cs:line 137
Run Code Online (Sandbox Code Playgroud)

我基本上是在做:

ManufacturedItem item = new ManufacturedItem();
item.ManufacturedItemRequirements.Add(new ManufacturedItemRequirement() { Quantity = 1; DefinitionId = 5 });

// Send …
Run Code Online (Sandbox Code Playgroud)

.net silverlight wcf entity-framework

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

嵌入式C - 函数的参数太多(指针)

我试图在我的.cpp文件中调用以下宏:

#define IAP_ROM_LOCATION                0x1FFF1FF1UL
#define IAP_EXECUTE_CMD(a, b)           ((void (*)())(IAP_ROM_LOCATION))(a, b)
Run Code Online (Sandbox Code Playgroud)

但是,当我像这样调用所述函数时:

IAP_EXECUTE_CMD(0, 0);
Run Code Online (Sandbox Code Playgroud)

我收到一个错误,说明有太多的参数?这怎么样?我会很感激任何指针.

开发环境是Cortex-M3的GCC.

c embedded gcc

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

无法在Docker容器中调用chown(适用于Windows的Docker)

我正在尝试使用官方的Mongo dockerfile来启动数据库,我正在使用-v命令将本地目录映射到/data容器内部。

作为的一部分Dockerfile,它将尝试将该目录授予用户mongodb:

RUN mkdir -p /data/db /data/configdb \
    && chown -R mongodb:mongodb /data/db /data/configdb
VOLUME /data/db /data/configdb
Run Code Online (Sandbox Code Playgroud)

但是,使用以下命令将失败:

chown: changing ownership of '/data/db': Permission denied
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?我找不到关于此的任何文档-肯定容器应该对映射目录具有完全权限,因为它已在docker run命令中明确传递:

docker run -d --name mongocontainer -v R:\mongodata:/data/db -p 3000:27017 mongo:latest
Run Code Online (Sandbox Code Playgroud)

docker dockerfile docker-for-windows docker-desktop

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

在MongoDB C#2.0中允许Int32溢出(新驱动程序)

我有一个uint32来序列化到MongoDB.

我曾经能够使用https://jira.mongodb.org/browse/CSHARP-252中的以下代码执行此操作

public class AlwaysAllowUInt32OverflowConvention : ISerializationOptionsConvention
{
    public IBsonSerializationOptions GetSerializationOptions(MemberInfo memberInfo)
    {
        Type type = null;
        var fieldInfo = memberInfo as FieldInfo;
        if (fieldInfo != null)
        {
            type = fieldInfo.FieldType;
        }
        var propertyInfo = memberInfo as PropertyInfo;
        if (propertyInfo != null)
        {
            type = propertyInfo.PropertyType;
        }


        if (type == typeof(uint))
        {
            return new RepresentationSerializationOptions(BsonType.Int32) { AllowOverflow = true };
        }
        else
        {
            return null;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,在新的MongoDB库ISerializationOptionsConventionRepresentationSerializationOptions不存在.我已经看过了,看不出如何注册默认的ConventionPack(?)以允许uint32在新库上溢出int32.

如何在不向我的POCO 添加BsonRepresentation属性的情况下执行此操作?

c# mongodb

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

ASP.NET MVC中的文化问题3

我想在我的网站上显示多种语言和UI文化.我启用了IIS 7标志,它自动从浏览器中获取文化,如下所示:

<globalization 
    enableClientBasedCulture="true"
    culture="en-GB"
    uiCulture="auto:en"/>
Run Code Online (Sandbox Code Playgroud)

这非常有效,因为加载了正确的Resources文件,并显示正确的文化(GB为0.00; DE为0,00).

然而,这有一个意外的干扰我的外部服务的问题,例如这里是与PayPal接口的代码.

var paymentDetails = new PaymentDetailsType
{
    ItemTotal = new BasicAmountType
    { 
        currencyID = currencyCode,
        Value = basket.SubTotal.ToString("0.00")
    },
    ...
}
Run Code Online (Sandbox Code Playgroud)

这段代码基本上创建了一个像这样格式化的字符串'50.25',但是当PayPal总是需要点小数点时,当选择具有逗号作为小数点(例如DE - 德语)的文化时,ToString("0.00")生成'50,25'因此我的代码失败.

什么是纠正这个的最佳方法?我仍然希望将文化设置为用户的文化,但是我想设置我的代码的某些部分以使用我自己的文化.

我知道我可以用特定的文化来养活这种ToString()方法,但这看起来非常苛刻.更专业的清洁方法?

asp.net-mvc culture localization asp.net-mvc-3

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