小编jan*_*ann的帖子

实体类型<type>不是当前上下文的模型的一部分

我正在进入实体框架,但我不确定我是否错过了代码优先方法中的关键点.

我正在使用基于https://genericunitofworkandrepositories.codeplex.com/的代码的通用存储库模式,并创建了我的实体.

但是当我尝试访问或修改实体时,我会遇到以下情况:

System.InvalidOperationException:实体类型Estate不是当前上下文的模型的一部分.

当我尝试从我的存储库访问它时会发生这种情况:

public virtual void Insert(TEntity entity)
{
    ((IObjectState)entity).ObjectState = ObjectState.Added;
    _dbSet.Attach(entity); // <-- The error occurs here
    _context.SyncObjectState(entity);
}
Run Code Online (Sandbox Code Playgroud)

数据库(./SQLEXPRESS)创建得很好,但实体(表)不是在启动时创建的.

我想知道我是否需要显式设置实体的映射?EF不能自己做到这一点吗?

我的实体是:

public class Estate : EntityBase
{
    public int EstateId { get; set; }
    public string Name { get; set; }
} 
Run Code Online (Sandbox Code Playgroud)

我的背景如下:

public partial class DimensionWebDbContext : DbContextBase // DbContextBase inherits DbContext
{
    public DimensionWebDbContext() :
        base("DimensionWebContext")
    {
        Database.SetInitializer<DimensionWebDbContext>(new CreateDatabaseIfNotExists<DimensionWebDbContext>());
        Configuration.ProxyCreationEnabled = false;
    }

    public new IDbSet<T> Set<T>() where T : class …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework ef-code-first dbcontext

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

OriginalValues不能用于处于已添加状态的实体

我正在使用Entity Framework构建一个Web应用程序,数据库是在启动时创建的,我的种子方法将一些实体添加到数据库中而没有任何问题.此外,实体的检索工作没有问题.

我的问题是,如果我尝试从UI层创建实体,我会遇到错误OriginalValues cannot be used for entities in the Added state.UI没有抛出异常,但是当我从问题中挖掘出来时,我发现了它.

我发生在我身上:

public virtual TEntity Add(TEntity entity)
{
    var entry = _context.Entry(entity);
    entry.State = EntityState.Added;
    _dbSet.Add(entity);

    return entity;
}
Run Code Online (Sandbox Code Playgroud)

截图:

在此输入图像描述

实体非常小并且映射:

public abstract class EntityBase
{
    public int Id { get; set; }
}

public class AccessCode : EntityBase
{
    public string Code { get; set; }
    public int UsageCount { get; set; }
}

public class AccessCodeMapping : EntityTypeConfiguration<AccessCode>
{
    public AccessCodeMapping()
    {
        // Table
        ToTable("AccessCode"); …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework

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

如何从Global.asax获取OwinContext?

我正在尝试设置我的依赖注入,我需要IAuthenticationManager从ASP.NET身份注入一个OwinContext.

为此,我来自我的Global.asax -> ServiceConfig.Configure()跑步:

 container.Register(() => HttpContext.Current.GetOwinContext().Authentication);
Run Code Online (Sandbox Code Playgroud)

但是,当我运行我的应用程序时,我收到此消息:

在上下文中找不到owin.Environment项

为什么这个HttpContext.Current.GetOwinContext()不能从Global.asax获得?

Startup.cs

[assembly: OwinStartupAttribute(typeof(MyApp.Web.Startup))]
namespace Speedop.Web
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Startup.Auth.cs

public partial class Startup
{
    public void ConfigureAuth(IAppBuilder app)
    {
        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            LoginPath = new PathString("/Account/Login"),
            Provider = new CookieAuthenticationProvider
            {
                OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<UserManager<User, int>, User, int>(
                    validateInterval: TimeSpan.FromMinutes(30),
                    regenerateIdentityCallback: (manager, user) => manager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie),
                    getUserIdCallback: (id) => (Int32.Parse(id.GetUserId())) …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc simple-injector owin

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

使用Web API进行模型绑定接口属性

我有一个命令看起来像:

public interface ICommand {
    // Just a marker interface
}

public interface IUserAware {
    Guid UserId { get; set; }
}

public class CreateSomething : ICommand, IUserAware
{
    public string Title { get; set; }

    public Guid UserId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

REST请求是:

PUT /create HTTP/1.1
UserId: 7da6f9ee-2bfc-70b1-f93c-10c950c8f6b0 // Possible an Auth token and not a userId like here.
Host: localhost:63079
Content-Type: application/json
Cache-Control: no-cache
{
    "title": "This is a test title"
}
Run Code Online (Sandbox Code Playgroud)

我有一个API控制器动作:

[HttpPut, Route("create")]
public IHttpActionResult …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-web-api

16
推荐指数
2
解决办法
2800
查看次数

将网站置于维护模式?

我开发了我的第一个Web应用程序,令人惊讶的是,它正变得非常受欢迎.

由于该网站现已上线,我很难做一些更改,因为担心有些人仍然登录并正在使用该应用程序.

我希望避免使用重复的Web应用程序实例进行测试.

有没有办法让网站处于"维护模式",只有我可以访问它?就像重定向到包含一些信息的页面一样,告诉它处于维护模式.

谢谢.:-)

asp.net maintenance

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

使用put内部匿名函数回调

我正在将Pusher实现到我的React + Redux Saga应用程序中,但是我遇到了一些问题,我在一些回调中遇不到这些put(...)方法.console.log(...)在方法中使用等确实显示,但我无法进入put我的应用程序状态.

我在异步/生成器函数的一些实现上可能是错的,但我现在几乎被卡住了.

我的代码说明了什么不会触发:

import { takeLatest } from 'redux-saga'
import { call, put } from 'redux-saga/effects'

// Pusher actions
export const pusherConnecting = () => {
    return {
        type: ActionTypes.PUSHER_CONNECTING
    }
};

export const pusherConnectSucceeded = (client) => {
    return {
        type: ActionTypes.PUSHER_CONNECT_SUCCEEDED,
        client: client
    }
};

const pusherConnectFailed = (exception) => {
    return {
        type: ActionTypes.PUSHER_CONNECT_FAILED,
        message: exception
    }
};

// Pusher Saga
function * connectPusher(action) {
    try …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs redux redux-saga

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

谷歌地图API - 慢加载JavaScript

我正在使用Google Maps API在特定页面上显示地图.

问题是该文件http://maps.google.com/maps?file=api.....有时会加载非常慢 - 降低页面的性能,因为其余的JavaScript首先加载到文档准备就绪,这很少到达 - 因为浏览器锁定等待来自Google的文件.

我试图将JavaScript文件从<head>标记移动到我的内容下.但其余的JavaScript从未被解雇,因为浏览器会等待来自Google的文件.

有没有办法解决这个问题,还是有其他人遇到过同样的问题?它最近开始,我不明白为什么.

这是我的代码,如果有人有兴趣:

<script type="text/javascript" src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=true&amp;key=ABQIAAAAa24xicak8_ghHX58i7La7hRFh9iM79SNC94rOejOtdMRvQmJiBS6Uv5F_1BNSh9ZuSzFXyekHISgew">    </script>
<script type="text/javascript" src="/js/maps.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
    // Google Maps
    initialize();

    // Other JavaScript comes here....

   });
</script>
Run Code Online (Sandbox Code Playgroud)

如果我访问

http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=true&amp;key=ABQIAAAAa24xicak8_ghHX58i7La7hRFh9iM79SNC94rOejOtdMRvQmJiBS6Uv5F_1BNSh9ZuSzFXyekHISgew
Run Code Online (Sandbox Code Playgroud)

文件立即加载.

javascript google-maps

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

拆分512个char块中的字符串

也许是一个基本问题,但让我们说我有一个长度为2000个字符的字符串,我需要将此字符串拆分为每个最多512个字符的块.

有没有一个好方法,像一个循环左右这样做?

c# string split

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

选中/取消选中所有复选框

我见过很多检查/取消选中所有复选框脚本.但是大多数人并不尊重如果我使用"全部选中" - 复选框切换所有复选框,然后取消选中列表中的单个复选框,则仍会选中"全部选中"复选框.

处理这种情况有一种优雅的方式吗?

javascript checkbox jquery

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

React:<tr>不能作为<td>的孩子出现.请参见注释> td> tr

那么为什么反应抱怨我不能把'tr'作为'td'的孩子呢?

              <tr>
                <td colSpan={2}>
                  <tr>
                    <td>
                      <Some picture>
                    </td>
                    <td>
                      <some content>
                    </td>
                  </tr>
                  <tr>
                    <td colSpan={2}>
                      <p>Paragraph stuff</p>
                    </td>
                  </tr>
                </td>
              </tr>
Run Code Online (Sandbox Code Playgroud)

也许我必须放另一张桌子或什么?

reactjs react-jsx

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