Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET成员资格配置文件_Asp.net_Membership_Profile - Fatal编程技术网

ASP.NET成员资格配置文件

ASP.NET成员资格配置文件,asp.net,membership,profile,Asp.net,Membership,Profile,我想向今天生日所在的所有用户发送一封电子邮件 我正在使用内置的asp.net(3.5)成员资格。所有用户都有一个配置文件(存储在aspnet_配置文件中),其中包含一个名为“生日”的日期/时间属性。我需要从“aspnet_成员”表中获取用户电子邮件地址列表,其中用户的生日是今天,同时还需要获取用户的“firstname”,这是aspnet_配置文件表中的字符串属性 我希望使用C#LINQ返回一个列表 我不知道如何访问配置表中的生日属性,基于它存储在DB表中的方式,即名称/值列< P>我认为您应该

我想向今天生日所在的所有用户发送一封电子邮件

我正在使用内置的asp.net(3.5)成员资格。所有用户都有一个配置文件(存储在aspnet_配置文件中),其中包含一个名为“生日”的日期/时间属性。我需要从“aspnet_成员”表中获取用户电子邮件地址列表,其中用户的生日是今天,同时还需要获取用户的“firstname”,这是aspnet_配置文件表中的字符串属性

我希望使用C#LINQ返回一个列表


我不知道如何访问配置表中的生日属性,基于它存储在DB表中的方式,即名称/值列

< P>我认为您应该考虑更改为基于表的提供者:

这允许您以标准SQL方式将数据拆分为每个表列的一个值。这比标准提供程序执行得更快,并且解决了查询概要文件数据库的问题


转换数据库只需少量工作,但在代码方面,这只是在不同的提供程序中进行配置的问题,其他任何内容都不应更改。这就是提供程序模式的优点。

我没有充分使用LINQ为您提供一个好的答案,但以下可能是您需要的底层SQL(这是我的SSMS在查询设计器中生成它的方式):


概要文件机制通过将每个名称/值对拆分,然后分别解析来解析这些值。您可以自己编写代码来实现这一点。或者你也可以按照@Daniel的方法使用替代供应商,这会让生活更轻松。开箱即用的提供程序是字符串连接的难点


这个代码在同一个应用程序中吗?如果你说的是C#,你可以使用profile对象来检索它。。。这段代码在什么上下文中?批处理服务?

谢谢@Daniel我甚至不知道该提供商,肯定会继续使用它!
SELECT     aspnet_Profile.PropertyValuesString AS firstname, aspnet_Membership.Email
FROM         aspnet_Profile INNER JOIN
                      aspnet_Membership ON aspnet_Profile.UserId = aspnet_Membership.UserId INNER JOIN
                      aspnet_Profile AS aspnet_Profile_1 ON aspnet_Profile.UserId = aspnet_Profile_1.UserId
WHERE     (aspnet_Profile_1.PropertyNames LIKE N'birthday') AND (aspnet_Profile.PropertyNames LIKE N'firstname') AND (DATEADD(dd, 0, DATEDIFF(dd, 0, 
                      aspnet_Profile_1.PropertyValuesString)) = DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())))