2010-08-09 18 views
11

asp.net'de (MVC kullanarak, ancak bu da düzenli olarak gerçekleşir)LastActivityDate'i güncellemeden bir profile erişmek mümkün mü?

Profile.GetProfile(username); 

o kullanıcı için LastActivityDate'i güncelleyecektir. Bu kullanıcı başkasının profilini görüntülediğinde amaçlanmamıştır.

Üyelik sınıfında, bu tarihin ikinci param ile güncellenip güncellenmeyeceğini belirtebilirsiniz, örneğin:

Membership.GetUser(username, false); // doesn't update LastActivityDate 
Membership.GetUser(username, true); // updates LastActivityDate 

Profil sağlayıcısında kendi sağlayıcımı yazmadan benzer bir şey yapmak zaten var mı?

cevap

9

aspnet_Profile_GetProperties saklı yordamını değiştirmeyi içeren çirkin bir geçici çözüm kullanabilirsiniz. Bu kullanıcı özelliklerine erişirken özellikleri almaktan sorumludur.

aç bu prosedür ve altındaki kodu aşağıdaki bulacaksınız:

IF (@@ROWCOUNT > 0) 
BEGIN 
    UPDATE dbo.aspnet_Users 
    SET [email protected] 
    WHERE UserId = @UserId 
END 

LastActivityDate güncellenmesi durdurmak için onu kaldırın. Membership.GetUser(username, true); numaralı telefonu arayarak LastActivityDate güncellemesini alabilirsiniz.

+3

Evet, sproc'ı düzenleme işi bitirdiğim şey. Bir noktada, sitemin profil bölümünü muhtemelen özel bir şeye yeniden yazacağım veya üçüncü bir taraf kullanacağım, ancak hızlı bir düzeltme yapmam gerekti. – WildJoe

1

Başka birinin yazdığı bir sağlayıcıyı kendi yazmanızı değil, yazmış olabilirsiniz.

Scott Guthrie blogda Bu seferki bilgi almak için kendi kod tarafından doğrudan denilebilir saklı yordamlar içerir:

http://weblogs.asp.net/scottgu/archive/2006/01/10/435038.aspx

Bu sayfa ile çalışmak için örnek bir uygulama yükleyen bir msi yüklemesine sahip özel Profil verileri. Tablo tabanlı profil, tüm profil verilerinin tek bir veritabanı alanında yer aldığı, varsayılan değerden çok daha iyi performans gösterir. Tabanlı bir tablo da doğrudan sorgulamak için çok daha kolay, bu da sorunuza yardımcı olacak. Numune şemadan saklı yordam doğrudan sadece sorgu veritabanı, Aksi

getCustomProfileDatadenir.

+1

Doğrudan veritabanını sorgulama konusunda kesinlikle öneriyorum. Aksi halde, harika yazı. – bzlm

+0

@bzlm Telli dosyalarınıza saygı duyuyorum ve bana bir neden vermezseniz katılmıyorum. :) Veritabanlarını, hatırlamaktan çok daha uzun yıllar sorguladım ve çok fazla zorluk yaşadım. –

İlgili konular