小编Dan*_*his的帖子

实体框架代码首先多对多创建重复行

我的问题结果是有两个上下文.我重新编写了我的代码,只有一个上下文,我的问题就消失了.

我有一个User,它有一个UserContact列表,它本身有一个ContactOption.它是一个相当简单的1到多个,多对1,中间有UserContact表.

如果我将用户拉出数据库并创建一个新的UserContact,但将ContactOption设置为现有项目(我从数据库中取出),当我保存更改时,实体框架在数据库中创建一个新的ContactOption,基本上是我添加到UserContact的副本(除了它获得一个新的id).

我已经与它斗争了好几个小时,无法解决这个问题.有任何想法吗?

我正在使用Repository模式进行数据库查询,但我确保它们共享相同的上下文.

我用这个将用户拉出数据库:

var user = _context.Users.Include("UserContacts.ContactOption")
              .Where(id => id == 1);
Run Code Online (Sandbox Code Playgroud)

并提供以下联系方式:

var co = _context.ContactOptions.FirstOrDefault(c => c.Id == id);
Run Code Online (Sandbox Code Playgroud)

我将ContactOption添加到UserContact,如下所示:

var contactOption = _context.ContactOptions.FirstOrDefault(c => c.Id == someId);

var contact = new UserContact { ContactOption = contactOption  };
contact.Data = "someData";

user.UserContacts.Add(contact);
Run Code Online (Sandbox Code Playgroud)

我的模型看起来像这样:

public class User
{
    [Key]
    public int Id { get; set; }

    public virtual ICollection<UserContact> UserContacts { get; set; }
}

public class UserContact
{
    [Key]
    public int Id { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# repository-pattern code-first entity-framework-4

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

使用Symfony 2.8进行LDAP身份验证

我正在尝试在Symfony 2.8中使用新的LdapUserProvider.我相信我已根据文档配置了所有内容.

我的用户可以成功进行身份验证,然后重定向到受保护的页面.重定向后问题开始.Symfony尝试绑定为经过身份验证的用户,但使用空密码,open ldap会拒绝该密码.

以下是相关的日志条目和配置值.

配置:

services:
    app.ldap:
        class: Symfony\Component\Ldap\LdapClient
        arguments: [ "localhost" ]
Run Code Online (Sandbox Code Playgroud)

安全:

security:
    firewalls:
        restricted_area:
            provider: app_users
            form_login_ldap:
                service: app.ldap
                dn_string: "uid={username},DC=mydomain,DC=net"
                check_path: login_check
                login_path: login
    providers:
        app_users:
            ldap:
                service: app.ldap
                base_dn: dc=mydomain,dc=net
                search_dn: cn=Manager,DC=mydomain,DC=net
                search_password: secretPassword
                filter: "(&(aptAccountEnabled=1)(ObjectClass=aptAccount)(uid={username}))"
                default_roles: ROLE_USER
Run Code Online (Sandbox Code Playgroud)

和日志文件:

[2015-12-18 13:55:11] request.INFO: Matched route "login_check". {"route_parameters":{"_route":"login_check"},"request_uri":"http://ancdev.admin.aptalaska.net/~dmorphis/Portal/web/app_dev.php/Login/Verify"} []
[2015-12-18 13:55:11] security.DEBUG: Read existing security token from the session. {"key":"_security_restricted_area"} []
[2015-12-18 13:55:11] security.DEBUG: User was reloaded from a user provider. {"username":"dan.smartrg","provider":"Symfony\\Component\\Security\\Core\\User\\LdapUserProvider"} []
[2015-12-18 …
Run Code Online (Sandbox Code Playgroud)

php authentication symfony symfony-2.8

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