相关疑难解决方法(0)

循环引用在将对象序列化为JSON时检测到异常

正如提到的这个帖子,我得到一个JSON序列化错误在序列化的实体框架代理:

序列化"System.Data.Entity.DynamicProxies.PurchaseOrder_446B939192F161CDBC740067F174F7A6059B0F9C0EEE68CD3EBBD63CF9AF5BD0"类型的对象时检测到循环引用.

但不同的是,我的实体中没有循环引用,它只发生在我们的生产环境中.本地一切都很好......

我的实体:

public interface IEntity
{
    Guid UniqueId { get; }
    int Id { get; }
} 

public class Entity : IEntity
{
    public int Id { get; set; }
    public Guid UniqueId { get; set; }
}

public class PurchaseOrder : Entity
{
    public string Username { get; set; }
    public string Company { get; set; }

    public string SupplierId { get; set; }
    public string SupplierName { get; set; } …
Run Code Online (Sandbox Code Playgroud)

c# serialization json entity-framework asp.net-mvc-4

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

InvalidOperationException:无法为"Role"创建DbSet,因为此类型未包含在上下文的模型中

以下解决方案适用于.net核心1.1,但在从1.1升级到2.0后,我收到以下错误:

InvalidOperationException:无法为"Role"创建DbSet,因为此类型未包含在上下文的模型中.

当用户尝试登录并执行以下语句时:

var result = await _signInManager.PasswordSignInAsync(model.Email, 
                                model.Password, model.RememberMe, lockoutOnFailure: false);
Run Code Online (Sandbox Code Playgroud)

怎么了?


User.cs

public partial class User : IdentityUser<Guid>
{
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

IdentityEntities.cs

public partial class UserLogin : IdentityUserLogin<Guid>
{
}
public partial class UserRole : IdentityUserRole<Guid>
{
}
public partial class UserClaim : IdentityUserClaim<Guid>
{
}
public partial class Role : IdentityRole<Guid>
{
    public Role() : base()
    { 
    }

    public Role(string roleName)
    {
        Name = roleName;
    }
}
public partial class RoleClaim …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc .net-2.0 asp.net-identity

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

EF Core 2如何在IdentityUser上包含角色导航属性?

我正在使用EF Core 2设置一个新项目,我需要在IdentityUser上有一个导航属性,所以当我查询用户时,我可以包含(x => x.Roles)并获取用户所在的角色.

这篇关于Github的帖子有一些想法,但是我通过在Identity表上创建新的/重复的字段或导致迁移问题,尝试了每个问题和所有问题.EF团队的任何人都没有官方评论.

https://github.com/aspnet/Identity/issues/1361

我想知道是否有人这样正常工作?并且可以共享他们的EF DB映射和模型.

asp.net-identity entity-framework-core asp.net-core

9
推荐指数
2
解决办法
4822
查看次数

ASP.NET Core 1.1获取所有用户及其角色

我是.NET的新手,试图获取所有注册用户的列表及其角色名称,并使用viewModel将它们发送到视图.

这是ViewModel:

public class ApplicationUserListViewModel
{
    [Display(Name = "User Email Address")]
    public string UserEmail { get; set; }

    public  List<IdentityUserRole<string>> Roles { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我尝试了这个以获取所有用户及其角色,并为每个用户创建一个ViewModel,并将所有视图模型放在一个列表中以传递给View:

var users =  _userManager.Users.ToList();
var userList = users.Select(u => 
                new ApplicationUserListViewModel {
                    UserEmail = u.Email,
                    Roles = u.Roles.ToList() }
                    ).ToList(); 
Run Code Online (Sandbox Code Playgroud)

但是,当我明确地为每个用户分配角色时,这总是为每个用户提供0个角色.

c# asp.net-mvc entity-framework asp.net-identity

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

为什么这违反了类型参数'TUser'的约束?

我正在尝试使用以下方法自定义asp.net标识实体:

public class User : IdentityUser<string, UserClaim, UserRole, UserLogin>
public class UserClaim : IdentityUserClaim<string>
public class UserLogin : IdentityUserLogin<string>
public class UserRole : IdentityUserRole<string>
public class UserToken : IdentityUserToken<string>
public class Role : IdentityRole<string, UserRole, RoleClaim>
public class RoleClaim : IdentityRoleClaim<string>
Run Code Online (Sandbox Code Playgroud)

然后我创建了一个DbContext类,如下所示

public class AppDbContext : IdentityDbContext<User, Role, string, UserClaim, UserRole, UserLogin, RoleClaim, UserToken>
Run Code Online (Sandbox Code Playgroud)

然后配置这些

services
    .AddIdentity<User, Role>()
    .AddEntityFrameworkStores<AppDbContext>()
    .AddDefaultTokenProviders();
Run Code Online (Sandbox Code Playgroud)

但我也尝试过

.AddEntityFrameworkStores<AppDbContext, string>()
Run Code Online (Sandbox Code Playgroud)

我在互联网上阅读了很多博客文章,例如这样,但大多数博客都要针对密钥的数据类型进行更改,比如int或者Guid.在我的情况下,我没有更改默认键数据类型string.

我在所有这些情况下编译都没问题,但它在运行时抛出错误

System.TypeLoadException GenericArguments [0],'MyIdentity.Entities.User','Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore`8 [TUser,TRole,TContext,TKey,TUserClaim,TUserRole,TUserLogin,TUserToken]'违反约束类型参数'TUser'.

at System.RuntimeTypeHandle.Instantiate(RuntimeTypeHandle句柄,IntPtr*pInst,int numGenericArgs,ObjectHandleOnStack类型),位于System.RuntimeType.MakeGenericType(Type …

asp.net-identity asp.net-identity-3 asp.net-core

6
推荐指数
2
解决办法
7486
查看次数