次のように、LINQtoSQLによって生成された部分クラス User があります。
[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.[User]")]
public partial class User : INotifyPropertyChanging, INotifyPropertyChanged
{
private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
...
次に、プロジェクトに別のフォルダー「Proxy」を作成し、そこに追加の User クラスを配置しました。
namespace LINQtoSQL_sample.Proxy
{
public partial class User
{
public static string GetActivationUrl()
{
return Guid.NewGuid().ToString("N");
...
同じプロジェクトの別の部分から追加の静的メソッドを呼び出そうとすると、問題が発生します。「SqlRepositoryImpl」というフォルダーがもう 1 つあり、そこに別の部分クラスがあるとします。
namespace LINQtoSQL_sample.SqlRepositoryImpl
{
public partial class SqlRepository
{
public bool CreateUser(User instance)
{
if (instance.ID == 0)
{
instance.added_date = DateTime.Now;
instance.activated_link = LINQtoSQL_sample.Proxy.User.GetActivationUrl();
...
ご覧のとおり、呼び出している User クラスの部分を明示的に定義しました。これは、IntelliSense が追加のメソッドを提案しなかったためです。
なぜそのようなことが起こるのか、どこが間違っているのか教えてください。