我想知道關於在sql server中設置asp.net成員資格以與linq to sql很好地協作的最佳方法。ASP.NET成員資格和Linq到SQL
我想使用用戶名字段的外鍵關係,並有LINQ到SQL識別ASP用戶屬性。
我在用戶表和我的其他表之間建立關係時遇到了一些問題。我是否需要將用戶名設置爲主鍵才能使用?
我想知道關於在sql server中設置asp.net成員資格以與linq to sql很好地協作的最佳方法。ASP.NET成員資格和Linq到SQL
我想使用用戶名字段的外鍵關係,並有LINQ到SQL識別ASP用戶屬性。
我在用戶表和我的其他表之間建立關係時遇到了一些問題。我是否需要將用戶名設置爲主鍵才能使用?
當我做到了,我只是讓aspnet_Users表格內的UserId
場是外鍵。當您使用LinqToSql可以基於ASP中的用戶名這樣仍然過濾:
from data in connection.MyTable
where data.aspnet_User.UserName == User.Identity.Name
select data;
這是因爲aspnet_Users表格內和自己的表的外鍵關係。
Users數據庫表上的主鍵約束與ASP.NET成員資格提供程序沒有任何關係(或很少)。成員資格提供者是一個實現System.Web.Security中定義的抽象類MembershipProvider的類。默認情況下,asp.net應用程序使用鏈接到aspnet_XXX表的成員資格提供程序,但您可以編寫自己的提供程序,它將使用您自己的「用戶」表並通過linq2sql訪問它。 鋁你要做的是創造類從System.Web.Security.MembershipProvider繼承並設置它在web.config中,如:
<membership defaultProvider="MyMembershipProvider">
<providers>
<clear/>
<add name="MyMembershipProvider" type="MyNamespace.MyMembershipProvider" applicationName="MyApp"/>
</providers>
</membership>
你必須實現使用字符串的用戶名來識別用戶的方法,但它不一定是你的表的主鍵。它應該由唯一的領域。我認爲最好的想法是使用INT作爲主鍵。
是的,這也是我所做的,發揮了魅力。 – 2009-12-09 14:49:09
真棒,我會給那個挖。 – 2009-12-09 22:36:40