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